次のような場合に、「'メソッド グループ' から '文字列' に変換できません」などのエラーによく遭遇します。
var list = new List<string>();
// ... snip
list.Add(someObject.ToString);
もちろん、最後の行にはタイプミスがありました。 の後の呼び出し括弧を忘れたからですToString
。正しい形式は次のようになります。
var list = new List<string>();
// ... snip
list.Add(someObject.ToString()); // <- notice the parentheses
ベストアンサー1
メソッド グループは、メソッドのセット(1 つのメソッドのみの場合もあります)の名前です。つまり、理論上はToString
、メソッドには複数のオーバーロード (および任意の拡張メソッド) がある場合があります (、など)。ToString()
したがってToString(string format)
、ToString
それ自体は「メソッド グループ」です。
通常、オーバーロード解決を使用してメソッド グループを (型指定された) デリゲートに変換できますが、文字列などには変換できません。これは意味がありません。
括弧を追加すると、オーバーロード解決が開始され、メソッド呼び出しが明確に識別されます。