如何使用C#为此调用语句创建泛型方法

时间:2016-08-19 09:10:31

标签: c#

有没有办法使用C#

为这个调用语句创建泛型方法
string a = Program.GenericTester(walter => walter.GetDetails(), dog);//calling statement
Console.WriteLine("Result A: {0}", a);
int b = Program.GenericTester(snowball => snowball.Age, cat);
Console.WriteLine("Result B: {0}", b);

1 个答案:

答案 0 :(得分:0)

如评论所述,我假设以下内容:catdog有不同的类型,walter的类型等于dog的类型,{{1}的类型1}}等于snowball的类型,cat返回类型等于第一个参数输入函数的返回类型。

可能的通用方法签名是

GenericTester

或者,如果public static TResult GenericTester<TSource, TResult>(Func<TSource, TResult> func, TSource item) { // ... return func(item); } dog具有公共基类类型cat且仅允许该类型的实例,则可以对通用参数强制执行类型限制。 Animal条款。

where