1. ホーム
  2. c#

[解決済み] C#のメソッドグループとは何ですか?

2022-01-29 05:21:38

質問

メソッドグループから文字列への変換ができない」というエラーによく遭遇するのですが、どうすればよいですか?

var list = new List<string>();
// ... snip
list.Add(someObject.ToString);

もちろん、最後の行にはタイプミスがあります。 ToString . 正しい形はこうです。

var list = new List<string>();
// ... snip
list.Add(someObject.ToString()); // <- notice the parentheses

しかし、メソッドグループとは何なのだろうと考えるようになりました。 グーグル はあまり役に立ちませんし MSDN .

解決方法は?

メソッドグループは メソッド群 (1つだけかもしれませんが) - すなわち、理論的には ToString メソッドは複数のオーバーロードを持つことができます(さらに、任意の拡張メソッドも)。 ToString() , ToString(string format) など - したがって ToString は、それ自体がメソッドグループである。

通常、オーバーロードの解決を使って、メソッドグループを(型付き)デリゲートに変換することができます - しかし、文字列などには変換できません。

括弧を追加すると、再びオーバーロード解決が働き、メソッドコールを明確に識別することができます。