Xamarin Studio c#空传播运算符
在填写关于Xamarin Studio的错误案例之前,我想问你的意见
public class Class1
{
public int AProp { get; set; }
}
考虑到这个简单的情况
Class1 c;
var aProp = c?.AProp;
不宜aProp
被推断为一个int?
因为它在Visual Studio 2015+上的c#-6.0中? 因为实际上它不是,它被推断为一个纯int
。
Xamarin工作室并不抱怨操作员,但它并不认可aProp
为可空的类型,因此抱怨。例如, .HasValue
属性评估; 不仅是智能感知,而且在编译时更糟糕
我错过了什么,或者它只是我的IDE?
编辑 :我刚刚发现我可以使用它在一个空聚并检查,即使推断类型实际上是int
! 什么混合! XD
我已经在由Visual Studio编译的新控制台应用程序中试过这段代码,它工作正常:
public class Foo
{
public int Bar { get; set; }
}
static void Main(string[] args)
{
Foo foo = new Foo(); //same result with Foo foo = null;
var baz = foo?.Bar;
if (baz.HasValue) //Expected Error here, but compiles fine
{
throw new NotImplementedException();
}
}
所以这是一个明确的错误。 您应该在Xamarin Studio的Bug跟踪器中打开一个新问题。
链接地址: http://www.djcxy.com/p/75159.html