Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.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# .NET framework崩溃还是我的代码有错误?_C#_Visual Studio - Fatal编程技术网

C# .NET framework崩溃还是我的代码有错误?

C# .NET framework崩溃还是我的代码有错误?,c#,visual-studio,C#,Visual Studio,我创建了一个包含两个相同类的类: public class Operation { public Operation A; public Operation B; // ... } 在这个类中,我将方法与以下代码放在一起: if (/* ... */) { Operation temp = this; this.A = temp; this.B = new Operation(number); return true; } 当执行thi

我创建了一个包含两个相同类的类:

public class Operation
{
    public Operation A;
    public Operation B;
    // ...
}
在这个类中,我将方法与以下代码放在一起:

if (/* ... */)
{
    Operation temp = this;
    this.A = temp;
    this.B = new Operation(number);
    return true;
}
当执行
this.A=temp
时,我试图查看结果-在本地(或观察)选项卡中展开对象,我的Visual Studio崩溃。当我让它运行时,它会很好,直到我尝试检查我的对象。对象内部似乎也没有变化,我试图通过代码获取一些数据(比如
myObject.A.A.A.Value
好吧,不知何故这是你的错,但微软确实应该通过某种算法来保护Visual Studio免受此崩溃

它崩溃的原因可能是VS试图为“本地人”或“监视”选项卡评估对象时出现的
StackOverflowException

由于您有效地设置了
this.A=this
,评估过程将无限重复。要评估
this.A
,它希望评估
this.A.A
,这显然也是
this
。因此它也希望评估
this.A.A
等,
A
将永远不会为
null
,因为它总是再次删除同一实例(


如上所述,VS无论如何都不应该崩溃。因此,您可能希望向Microsoft报告这一情况(我认为从未做过类似的事情)。

99.999999%的时候我问自己这个问题,这是我的错:)所以,
这个.a
等于
这个
?A
这个.A
有什么?它是无限递归的,我相信这就是导致崩溃的原因。为什么要将对象保存在它自己的属性中?
this.A=this
?你到底想干什么?我无法重现这个问题。请提供一个示例,并告诉我们您使用的Visual Studio的版本。谢谢,我的想法对我来说似乎很有逻辑,很可靠,但是。。我会想办法解决其他问题:(无论如何,谢谢!问题是,
操作是通过引用传递的,这就是为什么它会无限递归。在我创建了复制传递对象的构造函数之后,它开始工作了,问题是,应该这样吗?@Zyraf find!我认为无论开发人员做什么,VS都不应该崩溃。因此我建议reportin不管怎么说,g都是微软的。