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

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

怎么在C#中使用可空類型-創(chuàng)新互聯(lián)

今天就跟大家聊聊有關(guān)怎么在C#中使用可空類型,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

10年積累的成都網(wǎng)站建設(shè)、網(wǎng)站設(shè)計經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認識你,你也不認識我。但先網(wǎng)站制作后付款的網(wǎng)站建設(shè)流程,更有祁連免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

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

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

聲明一個可空類型的標準語句如下:

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

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

int? intClass = null;

或者使用

int? intClass = new int?()

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

Nullable myNullableClass = new Nullable();

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

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

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

如果將可空類型轉(zhuǎn)換為其基礎(chǔ)類型,需要使用強制轉(zhuǎn)換或其Value屬性獲?。?/p>

int myInt = (int)myNullableInt;
int myInt = myNullableInt.Value;
//以上兩種方式,在可空類型實例為null時會拋出異常,可以使用以下方式代替
int myInt = myNullableInt.GetValueOrDefault(); //其重載方法可以傳入默認值

2、可空類型的使用

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

int? k=10;
等同于
Nullable k = new Nullable(10);

int m; //默認值為0
int? m; //默認值為null

而??主要用于在判斷對象的值為null時所返回的指定的值。

int? num = null;
var k == num ?? 9;

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

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

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

? = 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($"一個可空的布爾值:");
      Console.ReadLine();
    }
  }
}

怎么在C#中使用可空類型

而對于??的合并運算符,它主要用于定義可空類型和引用類型的默認值。在其運算過程中,為類型轉(zhuǎn)換定義了一個預(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();
    }
  }
}

怎么在C#中使用可空類型

3、可空類型的案例使用

通過一個簡單的前端查詢功能來看看可空類型的使用。

頁面html

  姓名:   性別:     --請選擇--     男     女   

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

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace WebTest.Models
{
  public class TestInDto
  {
    /// 
    /// 隔離點
    /// 
    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 = "請選擇性別", 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 });
    }
  }
}

看完上述內(nèi)容,你們對怎么在C#中使用可空類型有進一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計公司行業(yè)資訊頻道,感謝大家的支持。

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


標題名稱:怎么在C#中使用可空類型-創(chuàng)新互聯(lián)
網(wǎng)址分享:http://weahome.cn/article/dgopjh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部