プロパティが暗黙的にデリゲートに変換できないのはなぜですか
C#のプロパティは、実際の単純な古いメソッドにコンパイルされることは誰でも知っています。しかし、method(-group)とは異なり、Func<T>orまたはAction<T>(getterおよびsetter)のようなデリゲートを期待する他のメソッドへの引数としてそれらを与えることはできません。これを禁止する特別なものはありますか、それともメソッドグループをデリゲートに暗黙的に変換可能にするときに「無料」で提供されなかった機能だけですか? コード例: public class MyClass { public static int X { get; set; } } private static void Foo<T>(Func<T> f) { Console.WriteLine(f()); } private static void Bar<T>(Action<T> f) { f(default(T)); } private static void Test() { // neither of these lines compile, even with an explicit type-cast. Foo(MyClass.X); Bar(MyClass.X); } …