我有一個外部庫的類對象,我想添加一些附加屬性。使用附加屬性擴展類
假設外部類:
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