C#可空類(lèi)型用法分析
本文實(shí)例講述了C#可空類(lèi)型用法。分享給大家供大家參考。具體分析如下:
可空類(lèi)型只能用于值類(lèi)型,不能用于引用類(lèi)型,引用類(lèi)型本身支持null值。
如果直接把null賦值給int類(lèi)型,會(huì)出現(xiàn)一個(gè)錯(cuò)誤"無(wú)法將 NULL 轉(zhuǎn)換成'int',因?yàn)樗且环N值類(lèi)型"。
賦值時(shí)應(yīng)該使用 int? a = null;
可空類(lèi)型與一元或二元運(yùn)算符一起使用是,如果一個(gè)操作數(shù)或兩個(gè)操作數(shù)都是null,其結(jié)果為null。
說(shuō)白了int?a=null 這句話的意思就是讓值類(lèi)型a可以接收null這個(gè)值
舉例1
int? a = null; int? b = a * 5; //b = null int? c = a + 5; //c = null
舉例2
int? a = null; int? b = null; if (a > b) { Console.WriteLine("a > b is true"); } else { Console.WriteLine("a > b is false"); } if (a == b) { Console.WriteLine("a == b is true"); } else { Console.WriteLine("a == b is false"); }
輸出結(jié)果
a > b is false a == b is true
舉例3
int? a = null; int b = -5; if (a >= b) { Console.WriteLine("a>=b"); } else { Console.WriteLine("a<b"); } if (a <= b) { Console.WriteLine("a<=b"); } else { Console.WriteLine("a>b"); }
輸出結(jié)果(從結(jié)果可以看出不能正確識(shí)別a>b還是a<b,只要有一個(gè)值為null,a>b和a<b這兩個(gè)條件都是返回false)
a<b a>b
希望本文所述對(duì)大家的C#程序設(shè)計(jì)有所幫助。
相關(guān)文章
asp.net實(shí)現(xiàn)遍歷Request的信息操作示例
這篇文章主要介紹了asp.net實(shí)現(xiàn)遍歷Request的信息操作,涉及asp.net針對(duì)請(qǐng)求信息相關(guān)操作打印操作技巧,需要的朋友可以參考下2020-03-03C#編程中使用設(shè)計(jì)模式中的原型模式的實(shí)例講解
這篇文章主要介紹了C#編程中使用設(shè)計(jì)模式中的原型模式的實(shí)例講解,原型模式創(chuàng)建新對(duì)象方便快捷,而且可在運(yùn)行時(shí)根據(jù)需要通過(guò)克隆來(lái)添加和去除他們,也可在程序運(yùn)行是根據(jù)情況來(lái)修改類(lèi)內(nèi)部的數(shù)據(jù),需要的朋友可以參考下2016-02-02C#使用Stack類(lèi)進(jìn)行堆棧設(shè)計(jì)詳解
C#中的堆棧由System.Collections.Generic命名空間中的Stack類(lèi)定義,那么下面就跟隨小編一起學(xué)習(xí)一下C#如何Stack類(lèi)進(jìn)行堆棧設(shè)計(jì)吧2024-03-03C#?Sqlite數(shù)據(jù)庫(kù)的搭建及使用技巧
這篇文章主要介紹了C#?Sqlite數(shù)據(jù)庫(kù)的搭建及使用技巧,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下2022-08-08C#中WPF內(nèi)存回收與釋放LierdaCracker的實(shí)現(xiàn)
本文主要介紹了C#中WPF內(nèi)存回收與釋放LierdaCracker的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07