會有很多不必要的變量(如我在這個 案例中解釋的變量)會導致C#中的性能問題嗎?
不,他們不會。
編譯器是足夠聰明的,當你在Release模式編譯刪除所有不必要的東西和優化您的代碼:
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
}
它絕對是n從性能的角度來看,你應該擔心什麼。你應該擔心的是你的代碼的可讀性,這個優化過的代碼示例似乎比你的版本更具可讀性。
所以你可以相信編譯器會不斷改進,並且能夠優化這種情況。
什麼地段適合你? 100或1.000.000?如果這些是不必要的,那麼是什麼阻止你去除它們?你是什麼樣的應用程序? –
如果您知道這些是不必要的,請將其刪除。 –
那些未使用的變量肯定會浪費維護開發人員的大腦週期 – chandmk