【原創C#】可空類型 ?和??


可空類型可以表示所有實際類型的值加上null。如果和數據庫打交道,這就會很有用,因為在數據庫表中遇到未定義的列是很常見的事情。

為了定義一個可空變量類型,應在底層數據類型中添加問號(?)作為后綴。注意,這種語法只對值類型是合法的,局部可空變量必須賦值一個初始值

  
  
  
// 定義一些局部可空類型
int ? a = 10 ;
double ? b = 3.14 ;
bool ? c = null ;
char ? d = ' a ' ;
int ? [] e = new int ? [ 2 ];

// 錯誤!字符串是引用類型
string ? s = "zhxdean " ;

??操作符,在獲得的值實際上是null時,我們可以用這個操作符給一個可空類型(不單單是值類型,也可以是引用類型)賦值。使用??操作符的好處是,他比傳統的if/else語法更加緊湊。

可空類型例子:

  
  
  
class Program
{
static DataTable dt = new DataTable();
static void Main( string [] args)
{
Cat c
= new Cat();
// c.Age()獲得的值是null,mydata=10
int mydata = c.Age() ?? 10 ;
// c.Name獲得值是null,myname=zhxhdean
string myname = c.Name ?? " zhxhdean " ;
// c.GetName()獲得值是null,mydata1=zhxhdean
string myname1 = c.GetName() ?? " zhxhdean " ;
Console.ReadKey();
}

}
class Cat
{
// 值類型的可空類型需要加?
private int ? age = null ;
public int ? Age()
{
return age;
}

// 注意string類型不能有?
private string name = null ;
public string Name
{
get { return name; }
set { name = value; }
}
public string GetName()
{
return name;
}
}

參考書籍:《C#與.NET4高級程序設計(第5版)》

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com