现在的位置: 首页 > 综合 > 正文

.NET 中的双问号

2012年10月22日 ⁄ 综合 ⁄ 共 790字 ⁄ 字号 评论关闭

已经不止一次遇到这种符号了,每次都要Google一遍,今天要彻底记住它的用法:

 

1.  变量定义中类型后带一个问号,意思是这个数据类型是NullAble类型的。用于给变量设初值的时候,给变量(int类型)赋值为null,而不是0!

例子: 

int? i = 3 等同于Nullable<int> i = new Nullable<int>(3);

int?是泛型Nullable<int>的另一种写法。

在定义方法的时候允许传null值:


 
  1. public   void  AddUser( string  name, string  password, int ? role)  
  2. {  
  3.     //内容略...   
  4. }  
  5.   
  6.   
  7. //使用   
  8. AddUser("小明" , "123456" , null ); //默认null为未审核用户   
  9. AddUser("小王" , "123456" ,1); //管理员   
  10. AddUser("小张" , "123456" ,2); //普通用户   

 

[c-sharp] view plaincopy

  1. public void AddUser(string name,string password,int? role)  
  2. {  
  3.     //内容略...  
  4. }  
  5.   
  6. //使用  
  7. AddUser("小明","123456",null);//默认null为未审核用户  
  8. AddUser("小王","123456",1);//管理员  
  9. AddUser("小张","123456",2);//普通用户  

 

 

2.  变量定义中类型后带两个问号, 用于判断并赋值,先判断当前变量是否为null,如果是就可以赋一个新值,否则跳过!意思是取所赋值??左边的,如果左边为null,取所赋值??右边的。

例子:    page ?? 0,表示page为null的时候,取右边的值0.

抱歉!评论已关闭.