私は抽象クラスから派生したいくつかのクラスを持っています。あるメソッドでは、派生クラスの1つであるオブジェクトを受け取ります。私は、オブジェクトのタイプをチェックし、正しいプロパティに割り当てる必要があります。単純な解決策は機能しますが、リファクタリングできるように見えます。でも、私はそれにアプローチする方法がわからない: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