JSFiddle说,我真的不知道怎么可能,而且我无法在简化的环境中重现错误.但这是它在我的应用程序中的样子.
我试图将值为'True','False'或'其他'字符串的值转换为布尔值,如果它是True或False.在大多数情况下,它工作正常(虽然它们可能是一种更加光滑的转换方式),如下图所示

但有时它失败了,手表的价值显示如下:

因此突然变量值为"True"的字符串变量不等于"True"字符串文字.我迷路了.这怎么可能?我在这里错过了什么?
提前致谢
我想我要写的是我应该先澄清一下,这不是我想要实现的.这是发生在我身上的事情,我正在努力了解它是如何可能的,所以我可以解决它.所以我们走了......
我正在使用C#,.NET 4.0.代码很大,太大了,不能超过这一切,但我试着解释一下发生了什么,希望有一些知识渊博的人会有一些想法.
在我的调用堆栈中,我有一系列通用方法,我注意到虽然值应该只是从一个传递到另一个,但它正在改变.好的,那是我的第一印象.后来我设法隔离了一个有问题的方法,当我停止时,我可以看到对象的同一属性有两个不同的值.
public class Sample : BaseClass, ISomeInterface
{
[XmlIgnore]
public new Guid Id { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
BaseClass和ISomeINterface定义的内容可能很重要
public Guid Id
Run Code Online (Sandbox Code Playgroud)
所以现在,当我停在那个泛型方法并观察Sample类型的变量数据时,i可以扩展其属性并查看Id的第一个值.但是当我观看数据时,它显示出不同的价值.看看你自己.
(这是一张我无法发布的图片,因为声誉可以忽略不计.抱歉)
编辑:我把它推到那里http://picturepush.com/public/7307446
那里的任何人都知道在Watch窗口中获得这些值的方式有何不同?有什么不同?我尝试了许多不同的方法,使用反射进行投射,但总是得到与观察数据时相同的值.具有讽刺意味的是,正确的值,我期望的是另一个,难以捉摸的值.
哦,不,这不是作业;)