Было ли много ненужных переменных (например, объясненных в этом случае) причиной проблемы производительности в C #?
blockquote>Нет, они не будут.
Компилятор достаточно интеллектуальный, чтобы удалить все ненужные вещи при компиляции в режиме деблокирования и оптимизировать ваш код:
public string Foo() { return "foo bar"; }
или более точно, чтобы:
.method public hidebysig instance string Foo() cil managed { .maxstack 1 .locals init ( [0] string str) L_0000: ldstr "foo bar" L_0005: stloc.0 L_0006: ldloc.0 L_0007: ret }
, который по сравнению со своим аналогом режима отладки совсем другой:
.method public hidebysig instance string Foo() cil managed { .maxstack 1 .locals init ( [0] string _foo, [1] string CS$1$0000) L_0000: nop L_0001: ldstr "foo bar" L_0006: stloc.0 L_0007: ldloc.0 L_0008: stloc.1 L_0009: br.s L_000b L_000b: ldloc.1 L_000c: ret }
Это определенно не то, о чем вам следует беспокоиться с точки зрения производительности. О чем вы должны беспокоиться - это читаемость вашего кода, и этот оптимизированный пример кода кажется более читаемым, чем ваша версия.
Таким образом, вы можете доверять компилятору, который постоянно совершенствуется и может оптимизировать такие ситуации.