C#中问号(?)的用法总结
今天看MVC自代的例子时,C#中有两个奇怪的问号: public AccountController(IFormsAuthentication formsAuth, IMembershipService service) { FormsAuth = formsAuth ?? new FormsAuthenticationService(); MembershipService = service ?? new AccountMembershipService(); } 网上搜下,总结如下: 1. 可空类型修饰符(?): 引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空。 例如:string str=null; 是正确的,int i=null; 编译器就会报错。 为了使值类型也可为空,就可以使用可空类型,即用可空类型修饰符"?"来表示,表现形式为"T?" 例如:int? 表示可空的整形,DateTime? 表示可为空的时间。 T? 其实是System.Nullable<T>(泛型结构)的缩写形式,也就意味着当你用到T?时编译器编译 时会把T...