已经不止一次遇到这种符号了,每次都要Google一遍,今天要彻底记住它的用法:
1. 变量定义中类型后带一个问号,意思是这个数据类型是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); //普通用户
- 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.