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>;