为了账号安全,请及时绑定邮箱和手机立即绑定

什么是C#中的方法组?

/ 猿问

什么是C#中的方法组?

九州编程 2019-06-17 15:54:45

什么是C#中的方法组?

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

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

当然,在最后一行中有一个错误,因为我忘记了后面的调用括号。ToString..正确的形式是:

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

然而,我开始想知道什么是方法小组。谷歌没有多大帮助MSDN.


查看完整描述

3 回答

?
吃鸡游戏

而且,如果您正在使用LINQ,显然可以这样做myList.Select(methodGroup).

例如,我有:

private string DoSomethingToMyString(string input){
    // blah}

而不是像这样显式地声明要使用的变量:

public List<string> GetStringStuff(){
    return something.getStringsFromSomewhere.Select(str => DoSomethingToMyString(str));}

我可以省略var的名称:

public List<string> GetStringStuff(){
    return something.getStringsFromSomewhere.Select(DoSomethingToMyString);}


查看完整回答
反对 回复 2019-06-17
?
catspeake

你可以投一个方法组变成一个代表。

委托签名从组中选择一个方法。

此示例选择ToString()重载,它接受字符串参数:

Func<string,string> fn = 123.ToString;Console.WriteLine(fn("00000000"));

此示例选择ToString()不需要参数的重载:

Func<string> fn = 123.ToString;Console.WriteLine(fn());


查看完整回答
反对 回复 2019-06-17
  • 3 回答
  • 0 关注
  • 669 浏览
我要回答

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信