我有許多派生自抽象類的類。在一個方法中,我收到一個對象,它是派生類之一。我需要檢查一個對象的類型並分配給一個正確的屬性。直接的解決方案的工作,但看起來像它可以重構。我不知道如何處理它,但:C#重構:檢查派生類的類型並將其分配給同一類的變量
public MyDerived1 derived1;
public MyDerived2 derived2;
// ....
public MyDerivedX derivedX;
public void AssignValue(MyBaseClass entity)
{
var derivedOne = entity as MyDerived1;
if (derivedOne != null)
{
derived1 = derivedOne;
return;
}
var derivedTwo = entity as MyDerived2;
if (derivedTwo != null)
{
derived2 = derivedTwo;
return;
}
// ....
var derivedEx = entity as MyDerivedX;
if (derivedEx != null)
{
derivedX = derivedEx;
return;
}
}
爲什麼不使用'is'關鍵字?有關詳細信息,請參閱此處:https://msdn.microsoft.com/en-us/library/scekt9xw(v=vs.110).aspx –
您可能只有一堆語句,如'derived1 = entity as MyDerived1;' – DavidG