나는 추상 클래스에서 파생 된 여러 클래스가 있습니다. 메서드에서 파생 클래스 중 하나 인 개체를받습니다. 개체의 유형을 확인하고 올바른 속성에 할당해야합니다. 직접적인 해결책은 작동하지만 리팩토링 될 수있는 것처럼 보입니다. 그래도 난 그것을 접근하는 방법을 모른다 :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