我想知道是否有人可以解释什么是Func<int, string>
以及如何使用它的一些明确的例子。Func的解释
Func的解释
回答
你熟悉一般的代表?我有一个关于delegates and events的页面,如果不是这样,可能会有帮助,但它更适合于解释两者之间的差异。
Func<T, TResult>
只是一个普通的委托 - 工作出它通过与声明中的相应类型参数(int
和string
)更换类型参数(T
和TResult
)在任何特定的情况意味着。我也给它改名,以避免混淆:
string ExpandedFunc(int x)
换句话说,Func<int, string>
是代表一个函数获取int
参数并返回一个string
的委托。
Func<T, TResult>
经常在LINQ中使用,既用于投影也用于谓词(在后一种情况下,TResult
始终为bool
)。例如,您可以使用Func<int, string>
将一系列整数投影到一系列字符串中。 Lambda表达式通常在LINQ用于创建相关代表:
Func<int, string> projection = x => "Value=" + x;
int[] values = { 3, 7, 10 };
var strings = values.Select(projection);
foreach (string s in strings)
{
Console.WriteLine(s);
}
结果:
Value=3
Value=7
Value=10
这是一个代表,它将一个int
作为参数并返回一个string
类型的值。
下面是它的用法的例子:
using System;
class Program
{
static void Main()
{
Func<Int32, String> func = bar;
// now I have a delegate which
// I can invoke or pass to other
// methods.
func(1);
}
static String bar(Int32 value)
{
return value.ToString();
}
}
谢谢安德鲁。你的意思是写func(1)而不是bar(1)? – zSynopsis 2009-05-18 19:53:05
是的,我做到了!感谢您的更正! – 2009-05-18 19:56:51
一个Func<int, string>
吃整数并返回一个字符串。那么,什么吃ints并返回字符串?这个怎么样...
public string IntAsString(int i)
{
return i.ToString();
}
在那里,我刚刚构造了一个函数,吃整数和返回字符串。我将如何使用它?
var lst = new List<int>() { 1, 2, 3, 4, 5 };
string str = String.Empty;
foreach(int i in lst)
{
str += IntAsString(i);
}
// str will be "12345"
不是很性感,我知道,但这是一个很简单的想法,很多技巧是基于。现在,我们来使用一个Func。
Func<int, string> fnc = IntAsString;
foreach (int i in lst)
{
str += fnc(i);
}
// str will be "1234512345" assuming we have same str as before
而不是调用IntAsString每个构件上的,我创建对它的引用名为FNC(这些参考文献中的方法被称为delegates)和使用该代替。 (记住fnc吃ints并返回字符串)。
这个例子不是非常性感,但你会看到很多聪明的东西是基于简单的功能,代表和想法extension methods。
这个东西我见过的最好的引物之一是here。他有更多真实的例子。 :)
- 1. 请.NET约Func键代表解释4.0
- 2. 请解释System.Linq.Enumerable.Where(Func <T,int,bool>谓词)
- 3. 解释无效(*信号(INT SIGNO,无效*(FUNC)(INT)))(INT)
- 4. 能否请您解释一下下面的代码,尤其是FUNC声明
- 5. 不与FUNC printf的理解用C
- 6. NSMutableArray的解释
- 7. 的Math.random()解释
- 8. PhoneGap的解释
- 9. setDelegate的解释
- 10. dFdx的解释
- 11. ArrayList的解释
- 12. NSLayoutAttribute的解释
- 13. 解释
- 14. 解释
- 15. 解释
- 16. 的Thread.join()的解释
- 17. Unity如何解决Func <type, type>
- 18. 试图去理解与FUNC WaitGroup
- 19. 引用另一个func中的func(swift)
- 20. 请求的解释
- 21. 解释从SimpleDateFormat的
- 22. 简单的解释
- 23. Atkin的筛解释
- 24. 解释SQL的BNF
- 25. 解释在Neo4j的
- 26. Android Xfermode的解释
- 27. 解释中的Freemarker
- 28. CMD ipscanner的解释?
- 29. 常数的解释
- 30. 解释的回声$ _
“换句话说,它是一个代表一个函数,它接受一个int参数并返回一个字符串。” 只是为了避免混淆别人,我会清楚你在说Func在这里而不是Func 。 很明显,如果你理解泛型类型和委托,但对于那些不需要它的人来说,函数kunc委托给一个接受int参数并返回一个字符串的函数是Func 。 –
2009-05-18 17:02:40