解析类型后加问号和双问号

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

例子: 

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

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

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


public  void  AddUser( string  name, string  password, int ? role)  
{  
    //内容略...  
}  
  
  
//使用  
AddUser("小明" , "123456" , null ); //默认null为未审核用户  
AddUser("小王" , "123456" ,1); //管理员  
AddUser("何问起" , "123456" ,2); //普通用户  
view plaincopy to clipboardprint?
public void AddUser(string name,string password,int? role)  
{  
    //内容略...  
}  
  
//使用  
AddUser("小明","123456",null);//默认null为未审核用户  
AddUser("小王","123456",1);//管理员  
AddUser("何问起","123456",2);//普通用户  

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

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

推荐:http://www.cnblogs.com/roucheng/p/3562327.html

原文地址:https://www.cnblogs.com/roucheng/p/leixingwenhao.html