相关疑难解决方法(0)

当它不是静态时,如何使用现有方法而不是lambda?

这必须是重复但我还没有找到它.我发现这个问题是相关的,因为它回答了为什么建议使用方法组而不是lambda.

但是,如果方法不在当前类中而方法不是,我如何使用现有方法组而不是lambda static

假设我有一个我希望转换为字符串的整数列表,我可以使用List.ConvertAll,但我需要传递Converter<int, string>给它:

List<int> ints = new List<int> { 1 };
List<string> strings = ints.ConvertAll<string>(i => i.ToString());
Run Code Online (Sandbox Code Playgroud)

这有效,但它使用lambda创建了一个不必要的匿名方法.所以,如果Int32.ToString是静态的,int我会写:

List<string> strings = ints.ConvertAll<string>(Int32.ToString);
Run Code Online (Sandbox Code Playgroud)

但那当然不能编译.那么我怎么能使用方法组呢?

如果我要创建这样的实例方法

string FooInt(int foo)
{
    return foo.ToString();
}
Run Code Online (Sandbox Code Playgroud)

我可以使用strings = ints.ConvertAll<string>(FooInt);,但这不是我想要的.我不想创建一个新方法只是为了能够使用现有的方法.

c# methods lambda type-conversion

2
推荐指数
1
解决办法
180
查看次数

标签 统计

c# ×1

lambda ×1

methods ×1

type-conversion ×1