ResourceSet.GetEnumerator 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
ResourceSet반복할 수 있는 IDictionaryEnumerator 반환합니다.
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
반환
이 ResourceSet대한 IDictionaryEnumerator.
- 특성
예외
리소스 집합이 닫혀 있거나 삭제되었습니다.
예제
다음 예제에서는 파일 items.resources
대한 ResourceSetrs
만드는 방법을 보여 줍니다. 다음으로 GetEnumerator 메서드를 사용하여 rs
대한 IDictionaryEnumerator 만듭니다.
IDictionaryEnumerator
rs
반복하여 콘솔에 내용을 표시합니다.
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
설명
열거자는 컬렉션의 데이터 읽기만 허용합니다. 열거자를 사용하여 기본 컬렉션을 수정할 수 없습니다.
처음에는 열거자가 컬렉션의 첫 번째 요소 앞에 배치됩니다. 또한 Reset 열거자를 이 위치로 다시 가져옵니다. 이 위치에서 Current 호출하면 예외가 throw됩니다. 따라서 Current값을 읽기 전에 MoveNext 호출하여 열거자를 컬렉션의 첫 번째 요소로 이동시켜야 합니다.
Current MoveNext 또는 Reset 호출될 때까지 동일한 개체를 반환합니다. MoveNext Current 다음 요소로 설정합니다.
컬렉션의 끝을 전달한 후 열거자는 컬렉션의 마지막 요소 앞에 배치되고 MoveNext 호출하면 false
반환됩니다.
MoveNext 대한 마지막 호출이 false
반환되면 Current 호출하면 예외가 throw됩니다.
Current 컬렉션의 첫 번째 요소로 다시 설정하려면 ResetMoveNext호출할 수 있습니다.
컬렉션이 변경되지 않은 상태로 유지되는 한 열거자는 유효한 상태로 유지됩니다. 요소 추가, 수정 또는 삭제와 같이 컬렉션이 변경되면 열거자가 복구할 수 없게 무효화되고 MoveNext 또는 Reset 대한 다음 호출은 InvalidOperationExceptionthrow합니다. 컬렉션이 MoveNextCurrent간에 수정된 경우 Current 열거자가 이미 무효화된 경우에도 컬렉션이 설정된 요소를 반환합니다.
IDictionaryEnumerator.Entry 속성을 사용하여 현재 요소에 저장된 값에 액세스할 수 있습니다. IDictionaryEnumerator.Key 속성을 사용하여 현재 요소의 키에 액세스합니다. IDictionaryEnumerator.Value 속성을 사용하여 현재 요소의 값에 액세스합니다.
열거자는 컬렉션에 대한 단독 액세스 권한이 없습니다. 따라서 컬렉션을 열거하는 것은 본질적으로 스레드로부터 안전한 프로시저가 아닙니다. 컬렉션이 동기화된 경우에도 다른 스레드는 컬렉션을 수정할 수 있으므로 열거자가 예외를 throw합니다. 열거 중 스레드 안전을 보장하기 위해 전체 열거 중에 컬렉션을 잠그거나 다른 스레드의 변경으로 인한 예외를 catch할 수 있습니다.
적용 대상
.NET