我有以下代碼,我試圖將ICollectionView返回的每個元素都轉換爲不同的對象。如何在foreach循環中處理InvalidOperationException包含yield返回?
public IEnumerator GetEnumerator()
{
foreach (TOriginal original in _collectionView)
{
if (!Equals(original, null))
{
yield return GetTranslated(original);
}
else
{
yield return default(TTranslated);
}
}
}
如果_collectionView是在foreach期間改變(這是在我的測試應用中發生的),那麼這將引發InvalidOperationException,而是因爲VisualStudio的抱怨「「產量回報,我不能在包裝一個try/catch foreach循環'語句不能出現在try/catch塊中「。
我該如何處理異常?
你真的需要處理異常嗎?我會想象,*不處理它,讓它冒泡給調用者將是最明顯的行爲。 – LukeH
@LukeH這是一個好點,也許我看着錯誤的問題 – Grokodile