小编xan*_*der的帖子

Func委托(C#)中的out参数修饰符

我是C#的初学者,只是有关Func委托的一个问题:

public delegate TResult Func<in T,out TResult>(T arg);
Run Code Online (Sandbox Code Playgroud)

我可以理解需要in在T之前放置关键字,因为我们不想修改源输入,但是out在TResult之前呢?那不是意味着我们需要修改输出,但是为什么呢?有时候我们不是即时生成返回对象,而是说我们有一个委托:

Func<string, bool> nameFilter = str => str[0] == 'S';
Run Code Online (Sandbox Code Playgroud)

因此它检查字符串以查看其第一个字符是否为'S',然后返回true或false,因此我们动态返回此布尔值,out关键字在这里做什么?有什么需要改变的吗?

.net c#

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

标签 统计

.net ×1

c# ×1