一尘不染

C#中的方法组是什么?

c#

在以下情况下,我经常遇到诸如“无法从“方法组”转换为“字符串””之类的错误:

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

当然,最后一行有一个错字,因为我忘了后面的调用括号ToString。正确的格式为:

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

但是我开始想知道什么是方法组。Google并不是MSDN的帮手。


阅读 1139

收藏
2020-05-19

共1个答案

一尘不染

方法组是一个名称 的一套方法 (可能是只有一个)
-即理论上的ToString方法可以有多个重载(加任何扩展方法)ToString()ToString(string format)等-因此ToString本身是一个“方法组”。

通常,它可以使用重载解析将方法组转换为(类型化的)委托,但不能转换为字符串等。这没有意义。

一旦加上括号,再次;重载解析开始,您已经明确确定了方法调用。

2020-05-19