相关疑难解决方法(0)

C#对象不为null,但(myObject!= null)仍然返回false

我需要在对象和NULL之间进行比较.当对象不是NULL时,我用一些数据填充它.

这是代码:

 if (region != null)
 {
  ....
 }
Run Code Online (Sandbox Code Playgroud)

这是有效的,但是当某些时候循环和循环时,region对象是非null(我可以在调试模式下看到其中的数据).在调试时一步一步,它不会进入IF语句...当我使用以下表达式进行快速监视时:我看到(region == null)返回false,AND(区域!= null )也返回错误... 为什么以及如何?

更新

有人指出对象是==和!=重载:

    public static bool operator ==(Region r1, Region r2)
    {
        if (object.ReferenceEquals(r1, null))
        {
            return false;
        }
        if (object.ReferenceEquals(r2, null))
        {
            return false;
        }

        return (r1.Cmr.CompareTo(r2.Cmr) == 0 && r1.Id == r2.Id);
    }


    public static bool operator !=(Region r1, Region r2)
    {
        if (object.ReferenceEquals(r1, null))
        {
            return false;
        }
        if (object.ReferenceEquals(r2, null))
        {
            return false;
        }
        return (r1.Cmr.CompareTo(r2.Cmr) != 0 || r1.Id != r2.Id); …
Run Code Online (Sandbox Code Playgroud)

c# null compare

18
推荐指数
3
解决办法
6万
查看次数

标签 统计

c# ×1

compare ×1

null ×1