Ein interessanter Aspekt der Erweiterungsmethoden in .NET ist die Tatsache, dass man sie auf Schnittstellen anwenden kann. Ich finde es gut, dass ich Funktionalität in der Nähe der Schnittstelle definieren kann, ohne eine abstrakte Klasse zu definieren, die die Baugruppe überfrachtet.
Ich weiß, dass abstrakte Klassen nicht veraltet sind oder irgendetwas, aber wie fühlen Sie sich über die Nutzung dieser Nebenwirkung in Ihrem Code?
Exemple :
public static class IUserExtensions
{
public static bool IsCurrentUser(this IUser user)
{
return (HttpContext.Current.User != null &&
HttpContext.Current.User.Identity.Name == user.ID.ToString());
}
}
public interface IUser {
int ID { get; set; }
}