BaseClass を使用するレガシー コードがあり、コードは customerid が int 型であると想定しています。次に、BaseClass と非常によく似た動作をする DerivedClass という新しいクラスを作成する必要がありますが、今度は customerid を文字列にする必要があります。レガシ コードは変更できないため、テストは不要です。
継承 (またはその他の方法) を使用して必要な効果を得るにはどうすればよいですか?
以下の Linqpad テスト コードは、私が何をする必要があるかを示しています。DerivedClass の customerid は int である必要があるため、明らかにコンパイルされません。customerid という文字列プロパティも必要です。他のコードは BaseClass の代わりにこのクラスを使用し、同じ名前のプロパティが文字列型であると想定するため、この名前にする必要があります。
public class BaseClass
{
public virtual int customerid {get; set;}
public void printname()
{
customerid = 1;
customerid.Dump();
}
}
public class DerivedClass : BaseClass
{
public override string customerid {get; set;}
public void PrintCustomerID()
{
customerid = "jshwedeX";
customerid.Dump();
}
}
void Main()
{
DerivedClass dc = new DerivedClass();
dc.printname();
}