ResourceSet.GetEnumerator Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
ResourceSetyineleyebilecek bir IDictionaryEnumerator döndürür.
public:
virtual System::Collections::IDictionaryEnumerator ^ GetEnumerator();
public virtual System.Collections.IDictionaryEnumerator GetEnumerator ();
[System.Runtime.InteropServices.ComVisible(false)]
public virtual System.Collections.IDictionaryEnumerator GetEnumerator ();
abstract member GetEnumerator : unit -> System.Collections.IDictionaryEnumerator
override this.GetEnumerator : unit -> System.Collections.IDictionaryEnumerator
[<System.Runtime.InteropServices.ComVisible(false)>]
abstract member GetEnumerator : unit -> System.Collections.IDictionaryEnumerator
override this.GetEnumerator : unit -> System.Collections.IDictionaryEnumerator
Public Overridable Function GetEnumerator () As IDictionaryEnumerator
Döndürülenler
Bu ResourceSetiçin bir IDictionaryEnumerator.
- Öznitelikler
Özel durumlar
Kaynak kümesi kapatıldı veya atıldı.
Örnekler
Aşağıdaki örnekte, items.resources
dosyası için nasıl ResourceSetrs
oluşturulacağı gösterilmektedir. Ardından, GetEnumerator yöntemi rs
için bir IDictionaryEnumerator oluşturmak için kullanılır.
IDictionaryEnumerator
rs
boyunca yinelenir ve içeriği konsolda görüntüler.
using namespace System;
using namespace System::Resources;
using namespace System::Collections;
int main()
{
// Create a ResourceSet for the file items.resources.
ResourceSet^ rs = gcnew ResourceSet( "items.resources" );
// Create an IDictionaryEnumerator* to read the data in the ResourceSet.
IDictionaryEnumerator^ id = rs->GetEnumerator();
// Iterate through the ResourceSet and display the contents to the console.
while ( id->MoveNext() )
Console::WriteLine( "\n [{0}] \t {1}", id->Key, id->Value );
rs->Close();
}
using System;
using System.Resources;
using System.Collections;
class EnumerateResources
{
public static void Main()
{
// Create a ResourceSet for the file items.resources.
ResourceSet rs = new ResourceSet("items.resources");
// Create an IDictionaryEnumerator to read the data in the ResourceSet.
IDictionaryEnumerator id = rs.GetEnumerator();
// Iterate through the ResourceSet and display the contents to the console.
while(id.MoveNext())
Console.WriteLine("\n[{0}] \t{1}", id.Key, id.Value);
rs.Close();
}
}
Imports System.Resources
Imports System.Collections
Class EnumerateResources
Public Shared Sub Main()
' Create a ResourceSet for the file items.resources.
Dim rs As New ResourceSet("items.resources")
' Create an IDictionaryEnumerator to read the data in the ResourceSet.
Dim id As IDictionaryEnumerator = rs.GetEnumerator()
' Iterate through the ResourceSet and display the contents to the console.
While id.MoveNext()
Console.WriteLine(ControlChars.NewLine + "[{0}] " + ControlChars.Tab + "{1}", id.Key, id.Value)
End While
rs.Close()
End Sub
End Class
Açıklamalar
Numaralandırıcılar yalnızca koleksiyondaki verilerin okunmasına izin verir. Numaralandırıcılar, temel alınan koleksiyonu değiştirmek için kullanılamaz.
Başlangıçta, numaralandırıcı koleksiyondaki ilk öğeden önce konumlandırılır. Reset ayrıca numaralandırıcıyı bu konuma geri getirir. Bu konumda, Current çağrılması bir özel durum oluşturur. Bu nedenle, Currentdeğerini okumadan önce numaralandırıcıyı koleksiyonun ilk öğesine ilerletmek için MoveNext çağırmalısınız.
Current, MoveNext veya Reset çağrılana kadar aynı nesneyi döndürür. MoveNext Current sonraki öğeye ayarlar.
Koleksiyonun sonu geçirildikten sonra numaralandırıcı koleksiyondaki son öğeden sonra konumlandırılır ve MoveNext çağrılması false
döndürür. son MoveNext çağrısı false
döndürdüyse, Current çağrısı bir özel durum oluşturur.
Current koleksiyonun ilk öğesine yeniden ayarlamak için, Reset ve ardından MoveNextçağırabilirsiniz.
Bir numaralandırıcı, koleksiyon değişmediği sürece geçerli kalır. Koleksiyonda öğe ekleme, değiştirme veya silme gibi değişiklikler yapılırsa, numaralandırıcı geri alınamaz şekilde geçersiz kılınmış olur ve MoveNext veya Reset sonraki çağrısı bir InvalidOperationExceptionoluşturur. Koleksiyon MoveNext ile Currentarasında değiştirilirse, numaralandırıcı zaten geçersiz kılınmış olsa bile Current ayarlandığı öğeyi döndürür.
geçerli öğede depolanan değere erişmek için IDictionaryEnumerator.Entry özelliğini kullanabilirsiniz. Geçerli öğenin anahtarına erişmek için IDictionaryEnumerator.Key özelliğini kullanın. Geçerli öğenin değerine erişmek için IDictionaryEnumerator.Value özelliğini kullanın.
Numaralandırıcının koleksiyona özel erişimi yoktur; Bu nedenle, bir koleksiyon aracılığıyla numaralandırma, iş parçacığı açısından güvenli bir yordam değildir. Bir koleksiyon eşitlendiğinde bile, diğer iş parçacıkları yine de koleksiyonu değiştirebilir ve bu da numaralandırıcının bir özel durum oluşturmasına neden olur. Numaralandırma sırasında iş parçacığı güvenliğini garanti etmek için, tüm numaralandırma sırasında koleksiyonu kilitleyebilir veya diğer iş parçacıkları tarafından yapılan değişikliklerden kaynaklanan özel durumları yakalayabilirsiniz.