типа класса я хотел бы сделать следующее:Определение в виртуальной функции
class A {
protected string _Name;
protected virtual void f(){ _Name = GetType().Name; // _Name is "A" }
}
class B : A {
// No override for f() hier.
}
class C : B {
protected void override f()
{
base.f(); // _Name is "C", but I want to get
// the class name in which _Name is actually set, i.e. "A"
}
}
Другими словами, я хотел бы получить имя класса, в котором устанавливается значение переменной-члена. Как мне это сделать?
'_Name =" A "', no? –
Нет, когда вы вызываете 'f()' из экземпляра 'C', вы получите« C »для имени типа. – rashmatash
'protected virtual void f() {...}'? поскольку по умолчанию это 'private virtual void f() {...}' –