Wo sollte ich mich innerhalb meiner Unterklasse auf eine geerbte geschützte nicht-virtuelle Methode wie this.Method()
oder base.Method()
beziehen?dies. vs Basis. für geerbte geschützte nicht-virtuelle Methoden?
Mit this
würde ich leicht die Methode mit einer neuen Methode mit dem gleichen Namen zu verbergen. Sollten Aufrufe an die Methode explizit base
spezifizieren, nur wenn sichergestellt ist, dass nur die Implementierung der Basisklasse spezifisch aufgerufen werden muss?
sollten Sie this.Method() immer aufrufen, wenn Sie aufrufen und einen Aufruf von base :: Method() innerhalb der implementierten überschriebenen Methoden innerhalb der abgeleiteten Klasse ausführen. Auf diese Weise in der Zukunft, wenn Sie etwas überschreiben, müssen Sie nicht um eine Basis gehen. Method(); –
Es ist keine virtuelle Methode und kann nicht überschrieben werden. Nicht-virtuelle Methoden können nur versteckt werden. – Monstieur
Warum bezeichnen Sie es nicht einfach als 'Methode()'? Wenn 'this' das mit seiner eigenen' Method() 'verbirgt, dann wird das aufgerufen. Wenn nicht, wird 'base.Method()' aufgerufen. Dies wurde als Standardverhalten ausgewählt. wahrscheinlich aus guten Gründen.^_^^ – Corak