我不知道如何适当地扩展类
本文关键字:扩展 何适当 我不知道 | 更新日期: 2023-09-27 18:15:18
我在asp.net中使用一些预构建的代码。它为我提供了一个MembershipUser
类,也有几个使用MembershipUser
的其他类。
我想添加一个新的属性到MembershipUser
不改变任何其他。我仍然希望所有预先制作的功能与它一起工作。
我如何扩展MembershipUser
,以包括一个新的属性,而不创建一个单独的类,其他功能没有知识?
在c#中,你只有三个扩展类的选项:
- Inheretance
- 装饰(MSDN Link)
- 扩展方法
遗憾的是,他们没有一个能达到你想要达到的目标。
如果你可以继承这个类,那就继承吧。例如,如果您的属性是string
public class ExtendedMembershipUser : MembershipUser
{
public string MyNewProperty { get; set; }
}
或者如果你不能继承(你不能添加属性),添加一个扩展方法:
public static class MembershipUserExtensions
{
public static string MyNewMethod(this MembershipUser user)
{
return "answerswer";
}
}