-1
我有兩個接口,兩者都具有相同的確切屬性。如何共享具有相同屬性的兩個接口的所有屬性
以防萬一你想知道爲什麼我有兩個這樣的接口這是一個很長的故事,但是,它必須是這樣。
基於條件,如果條件是另一種方式,List將被返回。
通過查看我的接口和我的代碼,我需要能夠使用一個對象,換句話說,如果無關緊要返回哪個接口我需要能夠使用一個對象而不是循環一個List接口並設置另一個的屬性。
我需要的是這樣的
compParts = genCompParts;
---代碼使用
public class ComponentParts : IComponentParts
{
public ComponentParts() { }
public ComponentParts(Guid userID, int compID, bool isGeneric)
{
List<IComponentPart> compParts = null;
List<IComponentPart_Max> genCompParts = null;
if (isGeneric)
{
genCompParts = GenericCatalogBL.GenericCatalogManagerBL.GetComponentPartsMax(compID);
}
else
{
compParts = CatalogManagerDL.GetComponentParts(userID, compID);
}
var verParts = compParts.Where(x => x.CompTypeName.ToLower().Contains("vertical"));
if (verParts.Count() > 0) { this.Vertical = verParts.ToList<IComponentPart>(); }
var horParts = compParts.Where(x => x.CompTypeName.ToLower().Contains("horizontal"));
if (horParts.Count() > 0) { this.Horizontal = horParts.ToList<IComponentPart>(); }
//... redundant code omitted
---接口快照---
我最終創建了一個類庫調用接口,我只是在我的解決方案中的不同程序間共享這些接口。
這就是我應該做的第一件事,只是懶惰。
我想你會想要_Max int erface實現其他......否則確實沒有任何有效的轉換。不過,你說他們是這樣設計的,所以也許你應該寫一些擴展方法在它們之間進行轉換? – Magus
你說「它必須這樣」。爲什麼?有兩個相同的接口是愚蠢的,尤其是考慮到那些*非常*特定的接口。 –