У меня есть устаревший код с использованием BaseClass, и код ожидает, что clientid будет иметь тип int. Затем у меня есть требование создать новый класс DerivedClass, который очень похож на BaseClass, но теперь customerid должен быть строкой. Унаследованный код не может быть изменен, поэтому тестирование не требуется.
Как получить эффект, который я хочу использовать наследование (или любым другим способом)?
Ниже приведен пример тестового кода Linqpad, который я должен сделать. Очевидно, что он не будет компилироваться, потому что clientid в DerivedClass должен быть int. Мне нужно свойство string, называемое 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();
}