真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

什么是可為空類型?-創(chuàng)新互聯(lián)

在項(xiàng)目中我們經(jīng)常會(huì)遇到可為空類型,那么到底什么是可為空類型呢?下面我們將從4個(gè)方面為大家剖析。

創(chuàng)新互聯(lián)建站自2013年起,先為阿克蘇等服務(wù)建站,阿克蘇等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為阿克蘇企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

1、可空類型基礎(chǔ)知識(shí)

顧名思義,可空類型指的就是某個(gè)對(duì)象類型可以為空,同時(shí)也是System.Nullable結(jié)構(gòu)的實(shí)例。可空類型可以表示基礎(chǔ)值類型正常范圍的值,然后再加上一次null值。當(dāng)然,也可以被賦值null值。比如Nullable可以被賦值true、false或者null。

聲明一個(gè)可空類型的標(biāo)準(zhǔn)語(yǔ)句如下:

T? myNullableNum = rangedNum/new T?() or null;

比如,我們聲明一個(gè)可空值類型并賦值null;

int? intClass = null;

或者使用

int? intClass = new int?()

同時(shí),我們都知道,可空類型是泛型Nullable的實(shí)例,聲明如下:

Nullable myNullableClass = new Nullable();

從聲明中可以看出,它的基礎(chǔ)類型T是可以包括struct和enum在內(nèi)的任何值類型,但是不能是引用類型,也不能是可空類型;從這里我們可以看出,可能類型不能嵌套使用。

在可空類型中,它包含以下實(shí)例成員:

首先是HasValue,它是只讀屬性,用于判斷對(duì)象是否有值。如果當(dāng)前值為空,則返回true,否則返回flase;其次是Value,它也是只讀屬性,用于獲取對(duì)象的值。如果當(dāng)前值非空,則可以正常獲取到對(duì)應(yīng)的值,否則會(huì)拋出異常InvalidOperationException;接著是GetValueOrDefault()的實(shí)例方法。該方法通過HasValue和Value屬性來(lái)得到當(dāng)前的信息。如果當(dāng)前值非空,即HasValue是true,則返回Value的值;否則返回T類型的默認(rèn)值,即私有字段value的默認(rèn)值。最后一個(gè)是GetValueOrDefault()實(shí)例方法。該方法依然是通過HasValue和Value屬性來(lái)得到當(dāng)前的信息。如果當(dāng)前值非空,即HasValue是true,則返回Value的值,否則返回默認(rèn)值defaultValue。

2、可空類型的使用

在可空類型中,常見的有使用單問號(hào)?和雙問號(hào)??來(lái)進(jìn)行設(shè)置。其中?常用于int,double,bool等無(wú)法直接賦值為null的數(shù)據(jù)類型;所代表的含義是這個(gè)數(shù)據(jù)類型是Nullable類型。

int? k=10;

等同于

Nullable k = new Nullable(10);

int m;  //默認(rèn)值為0

int? m; //默認(rèn)值為null

而??主要用于在判斷對(duì)象的值為null時(shí)所返回的指定的值。

int? num = null;

var k == num ?? 9;

對(duì)于可空類型,屬于一種特殊的數(shù)據(jù)類型,它可表示所對(duì)應(yīng)的基礎(chǔ)值類型中正常范圍內(nèi)的值,再加上一個(gè)null值。

比如說一個(gè)int類型的對(duì)象,它可以被賦值為-2,147,483,648到2,147,483,647之間的任意值,也可以被賦值為null值。而對(duì)于一個(gè)bool類型的值來(lái)說,它可以是true、false也可以是null。

聲明一個(gè)nullable類型(可控類型)的語(yǔ)法如下:

? = null;

以下示例說明:

using System;

namespace ExampleTest

{

class Program

{

   static void Main(string[] args)

   {

     int? objectNull = null;

     int? k = 80;

     double? db1 = new double?();

     double? db2 = 4.56;

     bool? b = new bool?();

     Console.WriteLine($"顯示可空類型{objectNull},{k},{db1},{db2}");

     Console.WriteLine($"一個(gè)可空的布爾值:");

     Console.ReadLine();

   }

}

}

而對(duì)于??的合并運(yùn)算符,它主要用于定義可空類型和引用類型的默認(rèn)值。在其運(yùn)算過程中,為類型轉(zhuǎn)換定義了一個(gè)預(yù)設(shè)值,防止可空類型的值是null。

using System;

namespace ExampleTest

{

class Program

{

   static void Main(string[] args)

   {

     double? objNull = null;

     double? k = 4.85;

     double db;

     db = objNull ?? 9.82;

     Console.WriteLine($"num3的值:{db}");

     db = k ?? 6.02;

     Console.WriteLine($"num3的值:{db}");

     Console.ReadLine();

   }

}

}

3、可空類型的案例使用

通過一個(gè)簡(jiǎn)單的前端查詢功能來(lái)看看可空類型的使用。

頁(yè)面html

姓名:

性別:

傳入?yún)?shù)Dto

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

namespace WebTest.Models

{

public class TestInDto

{

   /// 

   /// 隔離點(diǎn)

   /// 

   public int? Kum { get; set; }

   /// 

   /// 姓名

   /// 

   public string Name { get; set; }

}

}

控制器

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.Mvc;

using WebTest.Models;

namespace WebTest.Controllers

{

public class TestController : Controller

{

   // GET: Test

   public ActionResult Index()

   {

     return View();

   }

   public ActionResult TestFunction(TestInDto testInDto)

   {

     if (!testInDto.Kum.HasValue)

       return Json(new { Success = false, Message = "請(qǐng)選擇性別", Data = "" });

     int? num = null;

     DateTime? dt = null;

     bool? b = null;

     var data = new TestOutDto

     {

       Name = testInDto.Name,

       Num = num ?? 10,

       Dt = dt ?? DateTime.Now,

       IsExist = b ?? false

     };

     return Json(new { Success = true, Message = "", Data = data });

   }

}

}

4、總結(jié)

最后想說說,可空類型在日常的項(xiàng)目中還是會(huì)經(jīng)常使用到,針對(duì)每個(gè)邏輯層的方法對(duì)于傳入?yún)?shù)和返回參數(shù)而言,都可能存在使用可空類型來(lái)進(jìn)行處理和轉(zhuǎn)化。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


本文題目:什么是可為空類型?-創(chuàng)新互聯(lián)
標(biāo)題URL:http://weahome.cn/article/cdjioi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部