加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – “is”关键字和Equals方法的覆盖

发布时间:2020-12-15 08:01:28 所属栏目:百科 来源:网络整理
导读: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. 在实践中意味着什么? 用它来
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;
    }

    ...
}

解决方法

检查结构是否是某种类型是可以的.文档意味着在考虑给定对象是否具有指定类型时,不评估用户定义的 explicit和 implicit转换运算符,即使存在可以将其转换为所述类型的用户定义的运算符.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读