我打错了,Visual Studio 没有将其标记为错误:
void Method(Nullable<SpriteFont>? font = null) { }
font
显示为SpriteFont??
输出。我刚刚做了什么?
UPD:对不起,大家,我没有尝试共同编译它,只是在我这样做之前它没有显示为错误。Type??
尽管如此,它在输出中看起来还是很奇怪。
此外SpriteFont
已经可以为空,所以无论如何我都会得到一个错误:(
我已经在这里尝试过,刚才......我无法重现你所说的。
以下所有语句都无法编译:
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。
编辑器的语法检查器未能将其标记为带有红色曲线的错误。不是编译器。
两个不同的代码块。它们必须是,在您输入代码时语法检查代码,本质上总是被破坏,需要一种非常不同的方法。