在以下情况下,我经常遇到诸如“无法从‘方法组’转换为‘字符串’”之类的错误:
var list = new List<string>();
// ... snip
list.Add(someObject.ToString);
当然最后一行有错字,因为我忘记了 ToString
之后的调用括号。正确的形式是:
var list = new List<string>();
// ... snip
list.Add(someObject.ToString()); // <- notice the parentheses
最佳答案
方法组是一组方法的名称(可能只是一个)——也就是说,理论上 ToString
方法可能有多个重载(加上任何扩展方法):ToString()
、ToString(string format)
等 - 因此 ToString
本身就是一个“方法组”。
它通常可以通过使用重载决策将方法组转换为(类型化)委托(delegate) - 但不能转换为字符串等;这没有意义。
再次添加括号;重载解析开始,您已经明确地识别了一个方法调用。
关于c# - 什么是 C# 中的方法组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/886822/