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

Posted roucheng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解析类型后加问号和双问号相关的知识,希望对你有一定的参考价值。

 变量定义中类型后带一个问号,意思是这个数据类型是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

以上是关于解析类型后加问号和双问号的主要内容,如果未能解决你的问题,请参考以下文章

iphone sdk,撇号显示为问号

“类型”是啥意思,ECMA 6 中的问号有啥特殊用途吗?

可空类型“int”的默认值是多少? (包括问号)?

VSCode——VScode提供的代码格式中问号是啥意思

python爬虫出现菱形问号乱码的解决方法

C#变量定义中含问号代表啥