是否为真!=真,或者AccessViolationException是否奇怪
本文关键字:是否 AccessViolationException 或者 | 更新日期: 2023-09-27 18:09:35
在编写代码时,我遇到了一个奇怪的情况,我的if
返回真,即使测试显然是假的。我已经简化了代码,看看我是否错过了什么,但throw AccessViolationException()
继续执行。
bool valid = true;
if (valid != true)
{
throw new AccessViolationException("WTF");
}
是AccessViolationException
有奇怪的能力,还是我的电脑走远了?
编辑:"简化"意味着我拿走了所有额外的函数,这是我留下的代码。这几行是我的应用程序的复制和粘贴。这是我的真实代码
编辑2:我清理了解决方案,重新构建,重新启动。
代码目前看起来像这样,我仍然得到同样的问题,其中if
返回true。
bool valid = true;
if (valid != true)
{
throw new Exception("WTF");
}
在另一个函数中的类似代码按预期工作。上面的代码正是我现在的函数。
我很确定,你的代码不是那个,是什么在你的计算机上运行。由于一些奇怪的原因,编译器不能(很好地)编译您的代码,并且运行您以前的一些版本。重建(正如在一条评论中提到的)是一个很好的尝试,但不确定它是否成功。而不是:
- 退出Visual Studio 删除项目目录下的bin和obj文件夹打开VS和你的项目,再次打开编译,运行,然后开心。
奇怪的是,答案是删除现有的代码(变量声明和后面的if语句)。编译。再次插入代码。编译。
我不知道是什么原因造成的,但至少我可以再次编码。