c# 中委托的输入和输出是什么?

What is in and out on delegate in c#?

在c#代码中,我找到了这个工具。

我试图找出这个in和out的意思,但是里面只有out关键字的解释。

那么这些 in 和 out 关键字的作用是什么?

public delegate Tb Reader<in Ta, out Tb>( Ta a );

in参数指定类型参数是逆变的——你可以传入一个Ta继承的class。

out参数指定参数是协变的->你可以使用更多派生类型。

请参阅 here for the in modifer, and here 了解 out 修饰符

他们可以像下面的例子那样做。

Reader<string,object> first = someString => return someObject;
Reader<object,string> second= someObject => return someString;
first=second;