有没有办法使用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);
答案 0 :(得分:0)
如评论所述,我假设以下内容:cat
和dog
有不同的类型,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