我对C#语言的一些设计选择感兴趣.有一个在C#规范中的一个规则,允许使用方法组作为表达is操作:
class Foo {
static void Main() { if (Main is Foo) Main(); }
}
Run Code Online (Sandbox Code Playgroud)
上述条件总是错误的,因为规范说:
7.10.10是运营商
• 如果E是方法组或空文字,如果E的类型是引用类型或可空类型且E的值为null,则结果为false.
我的问题:允许在CLR中使用没有运行时表示的C#语言元素的目的/要点/原因是什么,就像这样的"运行时"运算符中的方法组一样is?