[英]In C# how do I create an extension method that takes a lambda with generic parameters, Func<T, TResult> as a parameter.
我正在尝试创建一个将Func作为参数的扩展方法,但出现错误。 这是我得到的:
public static class MyExtensions
{
public static TResult ModifyString<T, TResult>(this string s, Func<T, TResult> f)
{
return f(s);
}
}
在return f(s);
行我得到一个错误: Error CS1503 Argument 1: cannot convert from 'string' to 'T'
如何使用泛型参数T
和泛型返回类型TResult
指定泛型lambda Func?
问题是您要在函数中传递“ s”(一个声明为“ T”类型的字符串)。
更改func以使用字符串而不是T,然后返回字符串以使此代码可用于字符串。
public static class MyExtensions
{
public static string ModifyString(this string s, Func<string, string> f)
{
return f(s);
}
}
假设您只想要一个字符串结果。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.