我以为我已经见过所有的东西,但是这个... :)
我正在处理一个字符串类型的通用图表,
Graph<string> graph = new Graph<string>();
图表的类约束声明如下:
public class Graph<T> where T : class
下一步,我将用一些动态生成的字符串填充图表:
for (char t = 'A'; t < 'J'; t++)
{
GraphPrim.Add(t.ToString());
}
目前为止一切顺利,(Node是一个内部类,包含原始值和对其他节点的引用(因为它是一个图))
现在,当我尝试在不同节点之间创建关系时,我必须通过检查其值来查找正确的节点,这就是问题所在。
以下代码是在进行一些测试后在立即窗口中得到的结果的直接副本:
Nodes.First().Value
"A"
Nodes.First().Value == "A"
false
Nodes.First().Value.ToString() == "A"
true
我是完全错过了什么吗?或者Nodes.First().Value == "A"不应该使用字符串比较方法。(JIT编译器对运行时使用的类型及其支持的方法有了解,对吗?)我觉得当没有明确指定一个字符串时,它会执行引用检查而不是字符串测试。如果有人能向我解释一下这个问题,那就太好了。提前致谢!
Value
属性的静态类型是什么? - Mehrdad Afsharipublic T Value { get; set; }
- albertein