我输错了,Visual Studio没有将其标记为错误:
void Method(Nullable<SpriteFont>? font = null) { }
font
在输出中显示为SpriteFont??
。我刚刚做了什么?
UPD:对不起,大家,我没有尝试编译它,它只是在我做之前没有显示为错误。但是,在输出中看起来Type??
很奇怪。
此外SpriteFont
已经可以为空了,所以无论如何我都会遇到错误:(
答案 0 :(得分:4)
我在这里试过,刚才......我无法重现你说的话。
以下所有语句都无法编译:
Nullable<int>? a = 1;
Nullable<Nullable<int>> b = 1;
Nullable<int?> a = 1;
void A(Nullable<Nullable<int>> a)
void A(Nullable<int>? a)
void A(Nullable<int?> a)
使用Visual Studio 2012,C#4或5我认为.Net framework 4.5。
答案 1 :(得分:4)
编辑器的语法检查器无法将其标记为红色波形的错误。不是编译器。
两个不同的代码块。它们必须是,当你输入代码时,语法检查代码,本质上总是坏了,需要一种非常不同的方法。