Nein, der C# -Compiler übersetzt einen Aufruf von "simpleName
" nicht so, als ob er "classWithLongName.otherLongName
" kopieren und einfügen würde. Der Unterschied könnte tiefgründig oder einfach semantisch sein, aber was Sie tun, ist die Zuweisung des Werts von classWithLongName.otherLongName zu simpleName. Ob der Typ ein Werttyp oder ein Referenztyp ist, bestimmt genau, was passiert und was passiert, wenn Sie diesen Wert ändern, aber Sie erstellen dabei keinen Funktionszeiger oder Delegaten.
Ob dies Auswirkungen auf die Leistung hat, kann hier nicht beantwortet werden, außer zu sagen, dass es keinen NEGATIVEN Effekt hat. Wir können nicht sagen, ob es einen positiven Effekt haben wird, da das davon abhängen würde, was tatsächlich passiert, wenn Sie classWithLongName.otherLongName
anrufen. Wenn das ein teurer Vorgang ist, könnte dies die Geschwindigkeit erhöhen, aber der Nachteil wäre, dass Wertunterschiede bei nachfolgenden Aufrufen an classWithLongName.otherLongName
nicht reflektiert würden, wenn Sie den Wert in simpleName
zwischenspeichern.
Dies hat eine größere Auswirkung. – Jules