解析类型后加问号和双问号
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.
以上是关于解析类型后加问号和双问号的主要内容,如果未能解决你的问题,请参考以下文章