21

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();
}
4

1 に答える 1