gpt4 book ai didi

c# - "is"关键字和 Equals 方法的覆盖

转载 作者:太空狗 更新时间:2023-10-29 20:25:08 24 4
gpt4 key购买 nike

documentation for the keyword "is"指出:

The is operator only considers reference conversions, boxing conversions, and unboxing conversions. Other conversions, such as user-defined conversions, are not considered.

这在实践中意味着什么?用它来检查结构是否是某种类型是错误的吗?例如,

public struct Point2D
{
public int X;
public int Y;

...

public override bool Equals(Object value)
{
if (value != null && value is Point2D) // or if (value != null && GetType() == value.GetType())
{
Point2D right = (Point2D)value;
return (X == right.X && Y == right.Y);
}
else return false;
}

...
}

最佳答案

检查一个结构是否是某种类型是可以的。该文档表示用户定义的 explicitimplicit在考虑给定对象是否属于指定类型时,不会评估转换运算符,即使存在可以将其转换为所述类型的用户定义运算符也是如此。

关于c# - "is"关键字和 Equals 方法的覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9185915/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com