zoukankan      html  css  js  c++  java
  • 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作为一个新的类, 还存在一些小问题没有完善吧!

  • 相关阅读:
    External Interrupts in the x86 system. Part 1. Interrupt controller evolution
    虚拟机中断
    内核中断
    交换机三层转发vlanif
    centos 电池
    ironic port + host_id +device id
    arping
    2018-7-29-C#-强转会不会抛出异常
    2018-7-29-C#-强转会不会抛出异常
    2019-2-2-VisualStudio-扩展开发-添加菜单
  • 原文地址:https://www.cnblogs.com/flyant/p/4419458.html
Copyright © 2011-2022 走看看