Share via


CachedDataItemEnumerator 類別

逐一查看 CachedDataItemCollection

繼承階層架構

System.Object
  Microsoft.VisualStudio.Tools.Applications.CachedDataItemEnumerator

命名空間:  Microsoft.VisualStudio.Tools.Applications
組件:  Microsoft.VisualStudio.Tools.Applications.ServerDocument (在 Microsoft.VisualStudio.Tools.Applications.ServerDocument.dll 中)

語法

'宣告
<PermissionSetAttribute(SecurityAction.Demand, Name := "FullTrust")> _
Public NotInheritable Class CachedDataItemEnumerator _
    Implements IEnumerator(Of CachedDataItem), IDisposable,  _
    IEnumerator
[PermissionSetAttribute(SecurityAction.Demand, Name = "FullTrust")]
public sealed class CachedDataItemEnumerator : IEnumerator<CachedDataItem>, 
    IDisposable, IEnumerator

CachedDataItemEnumerator 型別會公開下列成員。

屬性

  名稱 說明
公用屬性 Current 取得列舉程式目前位置的 CachedDataItem

回頁首

方法

  名稱 說明
公用方法 Equals 判斷指定的 Object 和目前的 Object 是否相等。 (繼承自 Object)。
受保護的方法 Finalize 允許物件在記憶體回收進行回收之前,嘗試釋放資源並執行其他清除作業。 (繼承自 Object)。
公用方法 GetHashCode 做為特定型別的雜湊函式。 (繼承自 Object)。
公用方法 GetType 取得目前執行個體的 Type。 (繼承自 Object)。
受保護的方法 MemberwiseClone 建立目前 Object 的淺層複本 (Shallow Copy)。 (繼承自 Object)。
公用方法 MoveNext 將列舉程式前進至 CachedDataItemCollection 的下一個 CachedDataItem
公用方法 Reset 將列舉程式設定為它的初始位置,也就是集合中第一個 CachedDataItem 之前。
公用方法 ToString 傳回表示目前物件的字串。 (繼承自 Object)。

回頁首

明確介面實作

  名稱 說明
明確介面實作私用屬性 IEnumerator.Current 如需這個成員的說明,請參閱 Current
明確介面實作私用方法 IDisposable.Dispose 釋放 CachedDataItemEnumerator 使用的所有資源。

回頁首

備註

Visual Basic 和 C# 都包含會隱藏列舉值複雜度的陳述式 (在 C# 中為 foreach,在 Visual Basic 中為 For Each)。 請使用適合所用語言的陳述式,而不要直接管理列舉值。

列舉值可以用來讀取集合中的資料,但是無法用來修改基礎集合。

列舉值一開始會位於集合中的第一個元素之前。 Reset 方法也會將列舉值帶回這個位置。 在這個位置上設定 Current 屬性,會擲回例外狀況。 因此,在讀取 Current 值之前,必須先呼叫 MoveNext 方法,以將列舉值前移至集合的第一個項目。

Current 將會傳回相同物件,直到呼叫 MoveNext 或者 Reset 為止。 MoveNext 會將 Current 設為下一個項目。

如果 MoveNext 超過集合結尾,則會將列舉值置於集合中的最後一個項目之後,然後 MoveNext 會傳回 false。 當列舉值位於這個位置時,對 MoveNext 的後續呼叫也會傳回 false。 如果最後呼叫 MoveNext 傳回 false,則呼叫 Current 會擲回例外狀況。 若要將 Current 再次設定為集合的第一個項目,您可以先呼叫 Reset,然後再呼叫 MoveNext

只要集合保持不變,列舉值就會保持有效。 如果已對集合做變更,例如加入、修改或刪除項目,則列舉值將永遠無效,而再次呼叫 MoveNextReset 會擲回 InvalidOperationException。 如果在 MoveNextCurrent 之間修改集合,Current 會傳回所設定的元素,即使列舉值已經無效。

列舉值沒有集合的獨佔存取權,因此,列舉一個集合在本質上並不是執行緒安全的程序。 即使集合經過同步化,其他的執行緒仍可修改該集合,使列舉值擲回例外狀況。 如果要保證列舉過程的執行緒安全,您可以在整個列舉過程中鎖定集合,或攔截由其他執行緒的變更所造成的例外狀況。

執行緒安全

這個型別的任何 Public static (在 Visual Basic 中為 Shared) 成員都具備執行緒安全。並非所有的執行個體成員都是安全執行緒。

請參閱

參考

Microsoft.VisualStudio.Tools.Applications 命名空間