C#对我来说是存在的吗?

Dan*_*ell 2 c#

出于某种原因,if(false)似乎确实在起作用.ReferenceEquals调用在那里作为额外的测试.之前它只是user == null,它出现为false而if语句仍然在...之前.

[更新]这是一个SharePoint/ASP.Net环境,所以是的,它是多线程的.但是我写的代码都没有做任何线程.这是一个足够简单的调用,结果是一个布尔类型,if语句似乎认为false = true.我尝试了一个干净的解决方案,重新启动开发环境,重新启动机器.我找不到任何证据表明调试器中的代码与正在执行的代码有什么不同.

[注意]代码不是很好,因为我已经黑了一点尝试不同的事情,并调查为什么这有点错误.不要对我不好的代码.例如,userFound应该真正命名为userNotFound

alt text http://img228.imageshack.us/img228/6869/snippit.png

Mat*_*ush 18

尝试做一个干净的构建?IDE中的代码可能与正在调试的代码不完全匹配.


Eri*_*ert 5

我不知道为什么你会得到那个奇怪的结果.但代码确实看起来不对劲.如果"userObject"为空, "userFound"为true?当然,如果用户对象不为null,则会找到用户.

其余的可见代码假定"userFound == true"实际上也意味着"找不到用户".

如果重命名变量"userIsMissing",此代码将更加容易混淆.

  • 约翰是完全正确的.这几乎肯定是这里发生的事情.您使用的源代码与正在调试的二进制映像不匹配.应该有一种方法来设置VS,以便在发生这种情况时向您发出警告. (2认同)