【发布时间】:2012-01-20 08:16:35
【问题描述】:
我想知道为什么给定代码的输出(在 LinqPad 中执行)
void Main() {
Compare1((Action)Main).Dump();
Compare2(Main).Dump();
}
bool Compare1(Delegate x) {
return x == (Action)Main;
}
bool Compare2(Action x) {
return x == Main;
}
总是:
False
True
我天真地期望在这两种情况下都是True。
【问题讨论】:
-
将
Compare1更改为使用return x == (Delegate)(Action)Main;使其返回true。不知道为什么。 -
仅供参考:我在这里问了一个相关问题:stackoverflow.com/questions/8939350/…