Нет, компилятор C # не переводит вызов "simpleName
" так же, как копирование и вставка "classWithLongName.otherLongName
". Различие может быть глубоким или просто семантическим, но то, что вы делаете, это присваиваете значение из classWithLongName.otherLongName в simpleName. Является ли тип типом значения или ссылочным типом, будет точно определено, что произойдет и что произойдет, если вы манипулируете этим значением, но при этом вы не создаете указатель функции или делегат.
Вне зависимости от того, повлияет ли это на производительность, здесь нет ответа, кроме как сказать, что это не будет ОТРИЦАТЕЛЬНЫМ. Мы не можем сказать, будет ли это иметь положительный эффект, поскольку это будет зависеть от того, что на самом деле происходит, когда вы звоните classWithLongName.otherLongName
. Если это дорогостоящая операция, то это может сделать ее быстрее, но недостатком будет то, что любые различия в значении при последующих вызовах classWithLongName.otherLongName
не будут отражены, если вы кэшируете ее значение в simpleName
.