C# 内联泛型委托(不是常规操作<;T>;Func<;T,TResult>;)
是否可以编写内联泛型方法?例如,如何将下面的方法转换为内联委托C# 内联泛型委托(不是常规操作<;T>;Func<;T,TResult>;),c#,delegates,generics,C#,Delegates,Generics,是否可以编写内联泛型方法?例如,如何将下面的方法转换为内联委托 public TUser Current<TUser>() where TUser : User { return getCurrentUser() as TUser; } public TUser Current(),其中TUser:User { 返回getCurrentUser()作为TUser; } 即使只是能打电话 Func<User> userFunc = new Func<Us
public TUser Current<TUser>() where TUser : User
{
return getCurrentUser() as TUser;
}
public TUser Current(),其中TUser:User
{
返回getCurrentUser()作为TUser;
}
即使只是能打电话
Func<User> userFunc = new Func<User>(Current<User>);
Func userFunc=新Func(当前);
会很有用。您可以在C#3.0中使用lambda表达式:
Func userFunc=()=>getCurrentUser()作为用户;
或
Func userFunc=Current;
这毫无意义。您希望如何使用它?因为Current方法已经有了匹配的类型,您应该能够简单地编写'Func userFunc=Current;'
Func<User> userFunc = () => getCurrentUser() as User;
Func<User> userFunc = Current<User>;