在for循環中,我可以在for語句之外聲明索引。例如,而不是在foreach循環之外聲明變量
for (int i = 0; i < 8; i++) { }
我可以這樣做:
int i;
for (i = 0; i < 8; i++) { }
現在比較foreach循環,我必須聲明循環內的變量:
foreach (string name in names) { }
,我不能做類似:
string name;
foreach (name in names) { }
這個困擾我的原因是循環後我想再次使用變量「name」。在foreach循環的情況下,變量「name」不能被使用,因爲它在foreach範圍之外,並且我不能聲明其他變量具有相同的名稱,因爲它之前在同一個作用域中聲明。
有什麼想法?
您將使用name遍歷列表,爲什麼您需要稍後在代碼中引用它。我認爲你可以編寫代碼來避免這種用法。 –
@Shamim Hafiz:我有一種情況,我更喜歡一個與foreach循環中名稱相同的變量。 – Naor
我有同樣的問題。我在try-catch內部使用foreach循環,並在try和catch塊內寫入日誌。我在兩個日誌中的foreach循環中使用item變量。我最終使用了Jon Skeet前兩種方法的變體。 – seebiscuit