亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

C#中可空類型的使用方法

2023-05-05 19:01:36
字體:
供稿:網(wǎng)友

隨著C#語言最新標(biāo)準(zhǔn)的出爐,現(xiàn)在它也提供了對(duì)可空類型的支持。本文將從定義、使用、比較、移去四個(gè)方面全面詳細(xì)的介紹可空類型在c#中的獨(dú)特魅力,特別是在處理那些包括可選項(xiàng)的數(shù)據(jù)庫記錄時(shí)所發(fā)揮的巨大作用。當(dāng)然在其他地方,它也是非常有用的。

 簡(jiǎn)單說來,可空數(shù)據(jù)類型就是包含了所定義的數(shù)據(jù)類型或者值的空(null)的類型。C#的ECMA-334標(biāo)準(zhǔn)提供了對(duì)所有C#值類型的可空版本的描述。

定義可空類型

定義可空類型和非可空類型基本類似,不同的是采用了?來表示。如定義一個(gè)整型,你可以使用簡(jiǎn)單的語句:

int myInt = 1;

為了使得myInt能夠存儲(chǔ)一個(gè)空值,你可以這樣聲明它:

int? myNullableInt = 1;

你可以看到,這兩個(gè)變量看上去好像是一樣的。但是,可空類型的版本是非常不同的??煽盏陌姹臼聦?shí)上是一個(gè)結(jié)構(gòu),它將值類型和一個(gè)標(biāo)記該值是否為空的標(biāo)志位結(jié)合在一起。一個(gè)可空類型有兩個(gè)公共可讀的屬性,HasValue和value。如果存儲(chǔ)了一個(gè)值那么HasValue這個(gè)布爾型變量就為true。否則,如果變量是罩稻褪莊alse。如果HasValue是true,你可以獲取這個(gè)變量的值。如下有兩個(gè)對(duì)可空變量的有效賦值:

double myDouble = 3.1415926;
        double myOtherDouble = null;

你可以看到,myDouble被賦值了,但是也可以被賦為空。在第二個(gè)語句里,myOtherDouble被初始化一個(gè)空值,這在一個(gè)非可空類型里不能這樣做的。

使用可空類型

可空類型可以像普通值類型一樣的使用。事實(shí)上,可以使用內(nèi)建的隱式轉(zhuǎn)換來轉(zhuǎn)換相同類型的可空變量和非可空變量。這意味著你可以在一個(gè)標(biāo)準(zhǔn)整型和可空整型之間相互轉(zhuǎn)換:

int nFirst = null;
        int Second = 2;
        nFirst = Second; // 有效
        nFirst = 123; // 有效
        Second = nFirst; // 同樣有效
        nFirst = null; // 有效
        Second = nFirst; // 例外,后者是非空類型

在以上的語句里,你可以看到如果可空變量不包含空值的話是可以和非可空變量交換值的。如果它是一個(gè)空值,那么就會(huì)拋出例外。為了防止例外,你可以使用可空變量的HasValue屬性:

if (nFirst.HasValue) Second = nFirst;

你可以看到,如果nFirst有值賦值就會(huì)發(fā)生,否則程序會(huì)跳過此句語句。

使用可空類型的操作符

雖然可以使用相同值類型的可空和非可空變量的轉(zhuǎn)換,也必須對(duì)操作符進(jìn)行一些改變使得它們可以處理可空和非可空值。這些操作符被稱為提升的操作符。

考慮如下代碼:

int ValA = 10;
        int ValB = 3;
        int ValC = ValA * ValB;

在ValC里存儲(chǔ)了什么?ValC中存儲(chǔ)了30。標(biāo)準(zhǔn)操作符被擴(kuò)展使得它們能夠處理可空類型。考慮到如下的變化:

int ValA = 10;
        int ValB = null;
        int ValC = ValA * ValB;

ValC這次值為多少?ValC為空。無論哪個(gè)操作數(shù)為空,提升的操作符的結(jié)果為空。即使進(jìn)行加法或減法,結(jié)果也為空。

如果ValC不為可空類型呢?如下的代碼會(huì)有什么樣的結(jié)果?

int ValA = 10;
        int ValB = null;
        int ValC = ValA * ValB; // ValC 不為可空類型

代碼將會(huì)拋出一個(gè)異常。ValA*ValB結(jié)果為空,但是不能賦值為非可空類型,這將會(huì)導(dǎo)致程序異常的拋出。

比較

比較將會(huì)和數(shù)學(xué)計(jì)算操作類似的方式處理。比較的操作數(shù)將同時(shí)被提升為可空的。這樣就可以比較了,如果某個(gè)操作數(shù)為空,那么比較結(jié)果為false。

如果對(duì)比是否相等,兩個(gè)同為空的變量將被認(rèn)為是相等的。一個(gè)空變量和其他任意值的變量相比的結(jié)果是不相等。下面是一些比較的例子:

int abc = 123;
        int xyz = 890;
        int def = null;
        int uvw = 123;
        Comparison Result
        abc == xyz // false
        abc == def // false
        def == null // true
        abc == uvw // true
        uvw == null // false
        uvw != null // true

在所有的比較中,結(jié)果都是布爾型值true或者false。在做大小比較的時(shí)候,如果操作數(shù)的任意一個(gè)或者都是空值,那么結(jié)果返回的是false。如下展示了一些例子:

Comparison Result
        abc > uvw // false, they are equal
        abc < def // false, def is null
        uvw < def // false, because def is null
        def > null // false, because right side is null
        uvw > null // false, because right side is null

可空性的移去

C#在新版本中加入了一個(gè)新的操作符,它被稱為空接合操作符,使用如下的格式:

returnValue = first second;

這樣,如果first不為空,那么它的值將返回作為returnValue的值。如果first為空,那么second的值將被返回。注意:returnValue可以為可空變量或者非可空變量。

如果你希望可空變量的值到一個(gè)非可空的版本,你可以這樣做:

int ValA= 123;
        int ValB = null;
        int NewVarA = ValA -1;
        int NewVarB = ValB -1;

NewVarA的值將會(huì)為123因?yàn)閂alA不是空值。NewVarb的值是-1因?yàn)閂alB是空值。你看一看到,這里你將可以將變量從一個(gè)空值轉(zhuǎn)化成一個(gè)缺省值。這里缺省值是-1。

結(jié)束語

總得來說,最新的C#允許一個(gè)可空類型的存在。語言內(nèi)部建立了對(duì)可空類型的處理機(jī)制??煽疹愋褪沟脭?shù)據(jù)庫記錄和其他可選信息更加的容易處理。

可空類型是C# ECMA-334版本的一個(gè)特性。你需要一個(gè)支持這個(gè)版本的C#的編譯器。Visual Studio 2005支持這個(gè)版本。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
一色桃子久久精品亚洲| 成人精品久久一区二区三区| 亚洲视频在线观看免费| 先锋影音男人站| 亚洲综合成人在线视频| 国产chinese男男gaygay网站| 色愁久久久久久| 色呦呦在线播放| 国产美女免费视频| 伊人精品视频| 爱高潮www亚洲精品| 欧美性xxxx极品hd欧美风情| 欧美日韩一级大片网址| 黄色在线播放网站| 九色porny自拍视频在线播放| 亚洲资源在线看| av不卡在线免费观看| 老色鬼久久亚洲一区二区| 欧美成人乱码一区二区三区| 亚洲精品2区| 亚洲第一二三区| 国模精品视频一区二区三区| 国产又大又黄又粗的视频| 巨乳诱惑日韩免费av| 国产精品久久三区| 中文字幕精品综合| 国产不卡一二三区| 免费在线观看av| 视频在线亚洲| 日本阿v视频在线观看| 国产精品久久久久影院老司| 免费黄色小网站| 日韩乱码人妻无码中文字幕久久| 久久免费视频网| 92裸体在线视频网站| 中文字幕av高清片| 深田えいみ中文字幕99久久| yw3121.龙物视频永不失联| 精品国产一区二区三区忘忧草| 网址你懂得在线观看| 欧美丰满老妇| 日本成a人片在线观看| 成人精品视频一区| 黑人巨大精品欧美| 精品国产一区二区三区四区vr| 暧暧视频在线免费观看| 欧美日韩一区二区三区四区在线观看| 992tv在线成人免费观看| 天堂一区二区在线免费观看| 亚洲人成伊人成综合网久久久| 成人欧美大片| 香蕉视频亚洲一级| 91精品福利在线| 91青草视频久久| 伊人成综合网yiren22| 国产亚洲一区二区在线观看| 快射视频在线观看| 日韩精品一区二区在线| 小早川怜子一区二区三区| 一区二区三区不卡视频| 欧美日韩亚洲国产另类| 精品一区2区三区| 国产精品久久久久久久久久久久久久久久| 亚洲制服欧美中文字幕中文字幕| 风间由美久久久| 国产又大又长又粗| 欧美电影免费观看网站| 中文字幕一级片| 777777国产7777777| 成人国产精选| 国产情侣一区| 9i精品一二三区| 久久黄色免费网站| 日韩欧美中文字幕电影| 性欧美69xoxoxoxo| 国产性色av一区二区| 中文字幕在线不卡视频| 欧美小视频在线观看| 日韩有码免费视频| 手机在线观看日韩av| 亚洲天堂一区在线观看| 国产精品二区视频| 欧美一级国产精品| 神马久久久久久久久久| 91理论片午午论夜理片久久| 韩日精品一区二区| 欧美大片aaaa| 在线观看日本黄色| av成人资源网| 国产精品国产亚洲精品看不卡| 二区三区四区视频| 精品一区二区精品| 国产亚av手机在线观看| 99在线精品免费视频| 欧美中文字幕一二三区视频| 国产日韩在线一区二区三区| 亚洲第一视频网站| 日日操夜夜爽| 综合在线一区| 高清成人av| 可以免费观看av的网站| 亚洲嫩模很污视频| 永久91嫩草亚洲精品人人| 国产成人精彩在线视频九色| www深夜成人a√在线| 91视频观看| 国产欧美精品一区aⅴ影院| 免费高清在线观看电视| 国产婷婷色综合av蜜臀av| 男人的天堂最新网址| 大桥未久在线播放| 国产91对白刺激露脸在线观看| 欧美丰满少妇人妻精品| 久久久精品三级| 97av在线播放| 午夜精品久久久久久| 欧美电影免费| www.狠狠插| 成人免费高清视频在线观看| 在线播放视频一区| 国产精品日日摸夜夜爽| 精品国产91久久久久久老师| 国产成人午夜片在线观看高清观看| 久久亚洲精品一区| 欧美xxx黑人xxx水蜜桃| 国产精品综合网| 欧美性巨大欧美| 在线精品一区二区| 欧美性欧美巨大黑白大战| 爱爱视频网站免费| 亚洲黄色小说视频| 国产精品探花在线观看| 久久人人97超碰精品888| 日韩精选视频| 亚洲国产精品久久久男人的天堂| 麻豆一区在线| 欧美日韩一区 二区 三区 久久精品| 在线一区欧美| 超碰免费在线观看| 日本欧美电影在线观看| 日韩美女在线观看一区| 国产精品777| 亚洲va韩国va欧美va| 日本精品免费一区二区三区| 欧美尤物一区| 久久久久久久| 全网国产福利在线播放| 白白在线精品| 欧美成人sm免费视频| 国产目拍亚洲精品99久久精品| 婷婷激情四射网| 国产成人在线免费看| 超碰影院在线| 国产乱淫av一区二区三区| 欧美日韩亚洲一二三| 99精品国产99久久久久久福利| 伦理片一区二区三区| 91精品国产高潮对白| 欧美色图17p| 国产成人艳妇aa视频在线| 亚洲综合小说区| 精品久久久久久久久久国产| 日韩午夜精品视频| 国语自产精品视频在线看| 亚洲欧美综合久久久| 成人欧美在线| 亚洲网站在线播放| 制服丝袜中文字幕在线观看| 久久一区视频| 91日韩视频| 国产一区二区视频播放| 制服丝袜中文字幕一区| 99久久久国产精品免费调教网站| www亚洲人| 人体私拍套图hdxxxx| 九九精品免费视频| 国产91精品久久久| 中文在线√天堂| 日本在线三级| 美腿丝袜亚洲三区| 美女黄色网址| 国产婷婷一区二区三区久久| 日韩精品永久网址| 国产婷婷一区二区| 国产精品久久久久久久久免费丝袜| 亚洲国产高清高潮精品美女| 日韩极品在线| 国产日韩欧美麻豆| 中文字幕在线视频观看| 欧美乱大交xxxxx另类电影| 午夜国产一级| 中文字幕 在线观看| 国产黄色片免费在线观看| 久草视频免费在线观看| 欧美久久一级| 久久综合社区| 青青草综合网| 精品国产免费人成电影在线观...| 国产欧美韩国高清| 欧美激情在线免费观看| 国产极品美女高潮无套久久久| 日本男女交配视频| 在线播放国产一区二区三区| 麻豆国产精品视频| av综合在线观看| www.黄色在线观看| 中国一级特黄录像播放| 久久精品国产精品亚洲综合| 国产主播在线看| 欧美精品tushy高清| 九9re精品视频在线观看re6| 四虎影视av| 国产拍精品一二三| 蜜桃av一区二区| 国产传媒国产传媒| 日韩欧美精品一区二区综合视频| 精品日韩视频在线观看| 在线看福利影| 视频一区在线播放| 亚洲欧美高清| 99伊人成综合| 日韩最新av| 国产日韩欧美精品一区二区三区| 波多野结衣三级视频| 国产精品人成电影在线观看| 久草在线网址| 中文字幕一区二区三区四区五区| 国产免费一区二区三区免费视频| 亚洲男人影院| 免费一级片91| 国模无码大尺度一区二区三区| 久久综合九色99| 久久久国产精品无码| 欧美日韩视频在线观看一区二区三区| 欧美性色19p| 男人女人靠逼视频| 欧美影视一区二区三区| 成人精品一区二区三区免费| 色偷偷在线观看| 一级毛片高清视频| 久久久久久综合网天天| 亚洲专区一区二区三区| 久久久久久中文| 四虎亚洲成人| 色姑娘综合网| 国产精品久久久久久久免费软件| 国产自产女人91一区在线观看| 青草视频在线免费直播| 欧美人与动性xxxxbbbb| 亚洲男人天堂久| 亚洲AV成人无码精电影在线| 国产日韩专区| 欧美a级免费视频| 国产精品视频免费一区| 狠狠躁夜夜躁人人爽视频| 91伦理视频在线观看| 欧美成人综合网站| 日本午夜一区二区| 欧美69精品久久久久久不卡| 亚洲成人在线免费| 日韩av片子| 第一sis亚洲原创| 亚洲欧洲色图综合| 欧美大胆a人体大胆做受| 欧美人与动性xxxxbbbb| www.色.com| 精品国产一区二区三区麻豆小说| 精品国产三级a在线观看| 99精品国产一区二区青青牛奶| 精品在线观看免费| 中文字幕日韩一区二区| 国产精品免费久久久| 蜜桃视频一区二区三区| 久久人人爽爽爽人久久久| 国内精品久久久久久久影视蜜臀| 欧美国产日韩激情| 一本色道88久久加勒比精品| 国产精品 欧美激情| 国产成人avxxxxx在线看| h网站免费看| 2020欧美日韩在线视频| 精品久久久久久中文字幕2017| 日韩精品一区二区三区第95| 久久精品五月| 国产深夜男女无套内射| 2020国产精品极品色在线观看| 欧美亚洲成人xxx| 曰本大片免费观看视频| 精品一区二区三孕妇视频| 最美情侣韩剧在线播放| 亚洲国产精品午夜在线观看| 国产精品久久久久久久久粉嫩av| 360天大佬第二季在线观看| 亚洲天堂777| 国产精品久久久99| 国产最新自拍视频| xfplay资源站色先锋在线观看| 亚洲成av人片在线观看| 中文字幕乱码人妻二区三区| av在线影院| 午夜精品影院在线观看| 老牛嫩草一区二区三区日本| 亚洲午夜羞羞片| 精品国产丝袜高跟鞋| 国产精品老熟女视频一区二区| 国产色a在线| 国产a级一级片| 成人午夜精品一区二区三区| 色婷婷亚洲mv天堂mv在影片| 国产黄色片网站| 在线精品国产成人综合| 成人直播大秀| 天堂资源在线观看| 欧美日韩网址| 污导航在线观看| 在线天堂中文字幕| 亚洲自拍偷拍二区| 亚洲free性xxxx护士白浆| 91九色蝌蚪porny| 国产精品久久久久免费| www插插插无码免费视频网站| 国产99久久精品一区二区 夜夜躁日日躁| 成人国产网站| 亚洲天堂日韩av| 亚洲女人天堂在线| 欧美va天堂在线| 日本天堂在线观看| 日韩精品亚洲专区在线观看|