我有以下通用方法,但 VS 给了我一个编译错误。 (运算符“??”不能应用于“T”和“T”类型的操作数)
public static T Method<T>(T model) where T : new()
{
var m = model ?? new T();
}
有人知道为什么吗?
编辑:原因是否可能是在我的情况下 T 可以是一个结构,而结构是一个不可为空的类型?
??
是空合并运算符。它不能应用于不可为 null 的类型。自从T
可以是任何东西,它可以是int
或其他原始的、不可为 null 的类型。
如果加上条件where T : class http://msdn.microsoft.com/en-us/library/d5x73970.aspx(必须在之前指定new()
)它迫使T
是一个类实例,可以为空。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)