2009-07-20 6 views
2

Est-il possible d'écrire une méthode générique en ligne? Par exemple, comment puis-je traduire la méthode ci-dessous en un délégué en ligne.délégué générique en ligne (pas l'action normale <T> Func <T, TResult>)

public TUser Current<TUser>() where TUser : User 
{ 
    return getCurrentUser() as TUser; 
} 

Même juste pouvoir appeler

Func<User> userFunc = new Func<User>(Current<User>); 

serait utile.

+0

Cela ne fait aucun sens. Comment voudriez-vous l'utiliser? –

Répondre

3

Vous pouvez utiliser une expression lambda en C# 3.0:

Func<User> userFunc =() => getCurrentUser() as User; 

ou

Func<User> userFunc = Current<User>; 
+0

Depuis la méthode actuelle déjà un type correspondant, vous devriez pouvoir écrire simplement 'Func userFunc = Current ;' –

Questions connexes