VS2010环境下.NET4.0中Tuple<T>的一个小BUG问题

启动一个桌面程序后,发现一个窗体cfdata=null, 执行时发生错误, 但是在初始化的时候,我明明是cfdata=new Cfdata();为什么会出现这个错误呢.

我开始跟踪,发现当执行cfdata=new Cfdata()时, 执行被中断, 后面的代码没有执行, 但是VS2010没有报错, 也就是执行到cfdata=new Cfdata()时发生了错误!但是VS2010没有提示我!

继续调试跟踪,问题出现了以下代码,使用了未赋值的Tuple<T1,T2>的成员值, 而VS2010并没有捕获到该错误提示我:

         public Tuple<string,string,string>  Spath;

         public PersonAll()
         {
             string sa = ME.RnowFolder(1, 1);
             string sb = ZCspathasm20150407;

             //这里还没有对Spath赋值,就使用了它的成员值,所以肯定有错,但是VS2010并没有报错,而是执行到这里终止,使得该对象无法实例化,同时使得包含PersonAll实例的对象也无法实例化,使得最外面的cfdata也无法完成实例化,所以虽然执行了cfdata=new Cfdata();但是cfdata依然为null.
             string sc = Spath.Item1 + Spath.Item2;
             Spath = new Tuple<string, string, string>(sa, sb, sc);
         }

只是很奇怪,string sc = Spath.Item1 + Spath.Item2;既然这里使用了未赋值的成员值,为什么VS2010执行到这里不能给出提示呢,如果直接给提示,那么我第一步就知道错误在哪里,而不必一步步地调试寻找, 或许,Tuple作为一个新的类, 还存在一些小问题没有完善吧!

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。