程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#和VB.NET中類型相關資料整理(5)

C#和VB.NET中類型相關資料整理(5)

編輯:關於C語言

8.可空類型

首先看一下可空類型的說明:表示基礎類型為值類型的對象,值類型與引用類型一樣也可以分配 null 引用(在 Visual Basic 中為 Nothing)。

某些值類型並不總是具有(或需要)已定義的值。在可能沒有為某些字段賦予任何值的數據庫中,這是常見的實際情況。例如,您可以將 null 值賦予數據庫字段以表示尚未給該數據庫字段賦值。通過可空類型,可以向一個類型的默認值范圍中再添加一個為空的值。

可空類型在系統中有一個專門的類型,Nullable,一般使用泛型可空類型,C#為Nullable<T>,VB.Net為Nullable(Of T)。除了采用 類名稱來定義外,在這兩種語言中都有簡寫形式的定義,下面代碼中的定義是等價的:

C#:

Nullable<int> i = null;
int? j = null;

VB.Net:

Dim i As Nullable(Of Integer) = Nothing
Dim j? As Integer = Nothing 'VS2005不支持這種寫法

定義為可空類型的變量,可以和原始類型的變量一起進行運算,比如i+j,但是需要判斷該變量是否有值,否則可能出錯。判斷可空類型的 變量是否有值,可以通過HasValue屬性來判斷,然後通過Value屬性來獲取值。可空類型還有一個方法,GetValueOrDefault,如果有值,則獲 取Value,如果為空,則獲取基礎類型的默認值。詳細用法請參考MSDN。

另外在C#中還有一個特殊的運算符??,該運算符的用法為j = i ?? 5;意思是如果i不為空,則返回i的值,否則返回5。查看MSDN中的解釋: 如果 ?? 運算符的左操作數非 null,該運算符將返回左操作數,否則返回右操作數。通過該運算符可以簡化判斷取值的方法。

9.空數據類型

在系統還存在一種特殊的類型,DBNull。在操作數據庫的時候,獲取的數據項沒有值,這個數據項可能不是null(Nothing),而是DBNull 。下面驗證這兩個值的不同:

C#:

Console.WriteLine(DBNull.Value == Nothing); //輸出:False

VB.Net:

Console.WriteLine(DBNull.Value Is Nothing) ' 輸出:False

在使用DBNull的時候必須使用DBNull.Value,如下:

C#:

object item = row[0];
Console.WriteLine(item != DBNull.Value);

VB.Net:

Dim item As Object = row(0)
Console.WriteLine(item = DBNull.Value)

本文就寫到這裡了,希望對初學者有所幫助。因為代碼比較簡單,其中的變量使用了簡單的字母命名。文中有什麼不足之處,還請大家指正 。 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved