У меня есть дочерний класс B
, который наследуется от базового класса A
.
В моем базовом классе есть функция void DoSomething()
, которая изменяет объект базового класса .
Если я вызываю функцию из объекта дочернего класса, можно ли каким-либо образом гарантировать, что измененный объект будет иметь тип базового класса.
Например,
class BaseClass
{
int prop1;
int prop2;
void DoSomething()
{
prop1=prop1*5;
}
}
class ChildClass:BaseClass
{
int prop3;
}
class Program
{
ChildClass c= new ChildClass();
c.DoSomething();
}
теперь предположим, что childclass может иметь значение prop1 только до 10. если значение больше 50, то он по-прежнему имеет тип BaseClass, но не ChildClass. Итак, есть ли способ, которым я могу гарантировать, что после вызова c .DoSomething () объект будет считаться компилятором типа BaeeClass, а не дочернего класса.