Windows Phone上的react native扩展错误
编译与VS 2012
,与项目typesWP 8.0
下面的代码将失败,如果没有附加debugging器。
不知何故,如果debugging器没有连接,编译器优化会破坏Crash()
中的代码 – 请参阅代码中的注释。
testingLumia 1520(8.1)和Lumia 630(8.0) 。
任何想法,为什么这是发生?
public partial class MainPage : PhoneApplicationPage { public MainPage() { InitializeComponent(); Button.Tap += (sender, args) => new A<B, string>(new B(), "string").Crash(); } } public class B { public void Foo<T>(T val) { } } public class A<T1, T2> where T1 : B { private T1 _t1; private T2 _t2; public A(T1 t1, T2 t2) { _t2 = t2; _t1 = t1; } public void Crash() { var obs = Observable.Return(_t2); obs.Subscribe(result => { //CLR is expecting T2 to be System.String here, //but somehow, after passing through Observable //T2 here is not a string, it's A<T1, T2> new List<T2>().Add(result); }); //Will run normally if commented _t1.Foo(new object()); } }
_t1.Foo<type>(type);
您缺lesstypes声明。 编译器正在猜测(猜错)。 严格的input所有内容,然后运行。