J'ai écrit une classe de gestion SessionItem simple pour gérer toutes ces vérifications nuls satanés et insérer une valeur par défaut s'il n'en existe aucune. Voici ma méthode de GetItem:C# - Comment définir une méthode en ligne Func <T> en tant que paramètre?
public static T GetItem<T>(string key, Func<T> defaultValue)
{
if (HttpContext.Current.Session[key] == null)
{
HttpContext.Current.Session[key] = defaultValue.Invoke();
}
return (T)HttpContext.Current.Session[key];
}
Maintenant, comment puis-je utiliser ce fait, en passant dans le Func <T> comme paramètre de la méthode en ligne? Pourquoi ne pas passer la valeur par défaut directement?
Le ?? version ne définit pas la valeur dans la session. –