我不知道如何适当地扩展类

本文关键字:扩展 何适当 我不知道 | 更新日期: 2023-09-27 18:15:18

我在asp.net中使用一些预构建的代码。它为我提供了一个MembershipUser类,也有几个使用MembershipUser的其他类。

我想添加一个新的属性到MembershipUser不改变任何其他。我仍然希望所有预先制作的功能与它一起工作。

我如何扩展MembershipUser,以包括一个新的属性,而不创建一个单独的类,其他功能没有知识?

我不知道如何适当地扩展类

在c#中,你只有三个扩展类的选项:

  1. Inheretance
  2. 装饰(MSDN Link)
  3. 扩展方法

遗憾的是,他们没有一个能达到你想要达到的目标。

如果你可以继承这个类,那就继承吧。例如,如果您的属性是string

public class ExtendedMembershipUser : MembershipUser
{
    public string MyNewProperty { get; set; }
}

或者如果你不能继承(你不能添加属性),添加一个扩展方法:

public static class MembershipUserExtensions
{
    public static string MyNewMethod(this MembershipUser user)
    {
        return "answerswer";
    }
}