.NET の拡張メソッドの興味深い点の 1 つは、それらをインターフェイスに適用できることです。私にとっては、アセンブリを乱雑にする抽象クラスを定義することなく、インターフェイスの近くで機能を定義できることは素晴らしいことです。
抽象クラスが時代遅れなどではないことは知っていますが、コードでこの副作用を利用することについてどう思いますか?
例:
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; }
}