久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

C# 對象不為 null 但 (myObject != null) 仍然返回 fals

C# object is not null but (myObject != null) still return false(C# 對象不為 null 但 (myObject != null) 仍然返回 false)
本文介紹了C# 對象不為 null 但 (myObject != null) 仍然返回 false的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我需要在對象和 NULL 之間進行比較.當對象不是 NULL 時,我用一些數據填充它.

I need to do a comparaison between an object and NULL. When the object is not NULL I fill it with some data.

代碼如下:

 if (region != null)
 {
  ....
 }

這是有效的,但有時在循環和循環時,區域對象不為空(我可以在調試模式下看到其中的數據).在調試時的逐步調試中,它不會進入 IF 語句......當我使用以下表達式進行快速觀察時:我看到 (region == null) 返回 false, AND (region != null) 也返回 false...為什么以及如何?

This is working but when looping and looping sometime the region object is NOT null (I can see data inside it in debug mode). In step-by-step when debugging, it doesn't go inside the IF statement... When I do a Quick Watch with these following expression : I see the (region == null) return false, AND (region != null) return false too... why and how?

更新

有人指出對象是 == 和 != 重載:

Someone point out that the object was == and != overloaded:

    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);
    }

推薦答案

== 和/或 != 運算符是否為區域對象的類重載?

Is the == and/or != operator overloaded for the region object's class?

既然您已經發布了重載的代碼:

Now that you've posted the code for the overloads:

重載應該如下所示(代碼取自 Jon Skeet 和 菲利普·里克):

The overloads should probably look like the following (code taken from postings made by Jon Skeet and Philip Rieck):

public static bool operator ==(Region r1, Region r2)
{
    if (object.ReferenceEquals( r1, r2)) {
        // handles if both are null as well as object identity
        return true;
    }

    if ((object)r1 == null || (object)r2 == null)
    {
       return false;
    }        

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

public static bool operator !=(Region r1, Region r2)
{
    return !(r1 == r2);
}

這篇關于C# 對象不為 null 但 (myObject != null) 仍然返回 false的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

Why shouldn#39;t I always use nullable types in C#(為什么我不應該總是在 C# 中使用可空類型)
C# HasValue vs !=null(C# HasValue vs !=null)
C# ADO.NET: nulls and DbNull -- is there more efficient syntax?(C# ADO.NET:空值和 DbNull —— 有沒有更高效的語法?)
How to set null value to int in c#?(如何在c#中將空值設置為int?)
How to handle nulls in LINQ when using Min or Max?(使用 Min 或 Max 時如何處理 LINQ 中的空值?)
Method call if not null in C#(在 C# 中如果不為 null 的方法調用)
主站蜘蛛池模板: 激情婷婷| 久久r久久 | 亚洲国产精品久久久久久 | 天堂影院av| 欧美日韩网站 | 午夜免费网站 | 日韩免费av| 噜久寡妇噜噜久久寡妇 | 日韩欧美在线不卡 | 日本免费黄色 | 国产亚洲精品综合一区 | 美女视频一区 | 一区二区不卡高清 | 午夜精品一区二区三区在线观看 | 香蕉视频在线播放 | 国产精品欧美精品日韩精品 | 国产精品一区二区三区在线 | 午夜视频在线免费观看 | 欧美日韩中文在线 | 91在线视频国产 | 夜夜骚视频| 一区二区三区四区日韩 | 91网站视频在线观看 | 国产视频中文字幕在线观看 | 久久久精品国产 | 中文字幕免费视频 | 玖玖玖在线观看 | 五月香婷婷 | 视频在线观看一区二区 | 三级高清 | 一级欧美 | av国产精品毛片一区二区小说 | 九色 在线 | 在线观看的av| 国产高清视频在线观看播放 | 亚洲欧美中文日韩在线v日本 | 日韩成人免费av | 欧美日一区 | 中文字幕视频在线观看 | 天堂亚洲 | 日韩一级黄色毛片 |