C#中的两个问号
2012-07-23 13:57 田志良 阅读(485) 评论(0) 编辑 收藏 举报C#中两个问号的作用是判断??左边的对象是否为null,如果不为null则使用??左边的对象,如果为null则使用??右边的对象。
比如:a = b ?? c,如果b为null,则a = c,如果b不为null,则a = b。
// 原先要这样处理参数: string tmd = String.Empty; if (Request["Select"] != null) { tmd = Request["Select"]; } else { tmd = "All"; } // 现在重构为: string tmd1 = Request["Select"] ?? "All";
Session什么的也可以这么处理。顺便提一句,实际项目中处理参数比这个要复杂。往往包括类型转换等操作。类型转换建议用as操作符,强转不好。
补充一下:
不可以把null赋值给int型变量,但可以通过以下方法赋值:
int? i = null;