我有一个外部库的类对象,我想添加一些附加属性。使用附加属性扩展类
假设外部类:
public class ExternalClass
{
public string EXproperty1 {get;set;}
public string EXproperty2 {get;set;}
public string EXproperty3 {get;set;}
public ExternalClass(){}
}
和我有被填充为
List<ExternalClass> listOfExternalClass=new List<ExternalClass>();
listOfExternalClass=GetListOfExternalClass();
我可以通过创建一个新的类继承这个类,这些对象的列表,添加附加属性并使外部类成为属性。
public class NewClass
{
public ExternalClass ExternalClass {get;set;}
public string NewProperty1 {get;set;}
public string NewProperty2 {get;set;}
public NewClass(){}
public NewClass(ExternalClass externalClass){
this.ExternalClass=externalClass;
}
}
但受外部类的原始列表转换为新类的列表,我将不得不创造新类一个新的列表,并通过原始列表创建一个新的对象,并将其添加到迭代列表,像
List<NewClass> listOfNewClass=new List<NewClass>();
foreach(var externalClass in listOfExternalClass)
{
listOfNewClass.Add(new NewClass(externalClass));
}
我会再能访问诸如
listOfNewClass.FirstOrDefault().ExternalClass.EXproperty1;
我能做到这一点与继承或者是有一个更有效的方法外部性?
理想我想通过调用类的属性直到结束:
listOfNewClass.FirstOrDefault().EXproperty1;
为什么不inheretance?你已经尝试过了吗? –
这就是这样的问题总是会导致多个答案,都是一样的 – MickyD
您可能想阅读[Eric Lippert关于monads的博客系列](https://ericlippert.com/2013/02/21/monads-part-one) 。 – OldFart