Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#-空对空;无法计算表达式“的值”;_C#_Visual Studio_Visual Studio 2008_Debugging - Fatal编程技术网

C#-空对空;无法计算表达式“的值”;

C#-空对空;无法计算表达式“的值”;,c#,visual-studio,visual-studio-2008,debugging,C#,Visual Studio,Visual Studio 2008,Debugging,我有这样的代码: private Box mCurBox; public Box CurBox { get { return mCurBox; } set { if (mCurBox != value) { mCurBox = value; } } } 当mCurBox为空时,则CurBox调试

我有这样的代码:

    private Box mCurBox;

    public Box CurBox
    {
        get { return mCurBox; }
        set
        {
            if (mCurBox != value)
            {
                mCurBox = value;
            }
        }
    }

mCurBox
为空时,则
CurBox
调试器会显示“无法计算”。如果它知道下面的值是空的,那么它怎么会不知道呢

这是因为默认情况下没有将mCurBox定义为任何内容,因此编译器将其标记为未定义的行为。
您需要在定义mCurBox的同一行或构造函数中将其初始化为null。
一般来说,如果在定义引用类型时没有给它们赋值,最好将其初始化为null。

此外,由于您只是分配和检索,因此可以轻松地使用自动属性。

调试器可以时不时地使用gimpy。但是获得“无法评估”的预期情况是发布版本。这样的简单属性可以通过JIT编译器进行优化。属性getter代码甚至不存在。

我怀疑“将引用类型初始化为null是一种好做法”这句话;框架负责将这些值指定给它们的默认值。