OidEnumerator.MoveNext Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Przechodzi do następnego Oid obiektu w OidCollection obiekcie.
public:
virtual bool MoveNext();
public bool MoveNext ();
abstract member MoveNext : unit -> bool
override this.MoveNext : unit -> bool
Public Function MoveNext () As Boolean
Zwraca
true
, jeśli moduł wyliczający został pomyślnie zaawansowany do następnego elementu; false
, jeśli moduł wyliczający przeszedł koniec kolekcji.
Implementuje
Wyjątki
Kolekcja została zmodyfikowana po utworzeniu modułu wyliczającego.
Przykłady
W poniższym przykładzie kodu pokazano, jak używać OidEnumerator klasy.
#using <system.dll>
using namespace System;
using namespace System::Security::Cryptography;
int main()
{
// Assign values to strings.
String^ Value1 = "1.2.840.113549.1.1.1";
String^ Name1 = "3DES";
String^ Value2 = "1.3.6.1.4.1.311.20.2";
String^ InvalidName = "This name is not a valid name";
String^ InvalidValue = "1.1.1.1.1.1.1.1";
// Create new Oid objects using the specified values.
// Note that the corresponding Value or Friendly Name property is automatically added to the object.
Oid ^ o1 = gcnew Oid( Value1 );
Oid ^ o2 = gcnew Oid( Name1 );
// Create a new Oid object using the specified Value and Friendly Name properties.
// Note that the two are not compared to determine if the Value is associated
// with the Friendly Name.
Oid ^ o3 = gcnew Oid( Value2,InvalidName );
//Create a new Oid object using the specified Value. Note that if the value
// is invalid or not known, no value is assigned to the Friendly Name property.
Oid ^ o4 = gcnew Oid( InvalidValue );
//Write out the property information of the Oid objects.
Console::WriteLine( "Oid1: Automatically assigned Friendly Name: {0}, {1}", o1->FriendlyName, o1->Value );
Console::WriteLine( "Oid2: Automatically assigned Value: {0}, {1}", o2->FriendlyName, o2->Value );
Console::WriteLine( "Oid3: Name and Value not compared: {0}, {1}", o3->FriendlyName, o3->Value );
Console::WriteLine( "Oid4: Invalid Value used: {0}, {1} {2}", o4->FriendlyName, o4->Value, Environment::NewLine );
//Create an Oid collection and add several Oid objects.
OidCollection ^ oc = gcnew OidCollection;
oc->Add( o1 );
oc->Add( o2 );
oc->Add( o3 );
Console::WriteLine( "Number of Oids in the collection: {0}", oc->Count );
Console::WriteLine( "Is synchronized: {0} {1}", oc->IsSynchronized, Environment::NewLine );
//Create an enumerator for moving through the collection.
OidEnumerator ^ oe = oc->GetEnumerator();
//You must execute a MoveNext() to get to the first item in the collection.
oe->MoveNext();
// Write out Oids in the collection.
Console::WriteLine( "First Oid in collection: {0},{1}", oe->Current->FriendlyName, oe->Current->Value );
oe->MoveNext();
Console::WriteLine( "Second Oid in collection: {0},{1}", oe->Current->FriendlyName, oe->Current->Value );
//Return index in the collection to the beginning.
oe->Reset();
}
using System;
using System.Security.Cryptography;
public class OidSample
{
public static void Main()
{
// Assign values to strings.
string Value1 = "1.2.840.113549.1.1.1";
string Name1 = "3DES";
string Value2 = "1.3.6.1.4.1.311.20.2";
string InvalidName = "This name is not a valid name";
string InvalidValue = "1.1.1.1.1.1.1.1";
// Create new Oid objects using the specified values.
// Note that the corresponding Value or Friendly Name property is automatically added to the object.
Oid o1 = new Oid(Value1);
Oid o2 = new Oid(Name1);
// Create a new Oid object using the specified Value and Friendly Name properties.
// Note that the two are not compared to determine if the Value is associated
// with the Friendly Name.
Oid o3 = new Oid(Value2, InvalidName);
//Create a new Oid object using the specified Value. Note that if the value
// is invalid or not known, no value is assigned to the Friendly Name property.
Oid o4 = new Oid(InvalidValue);
//Write out the property information of the Oid objects.
Console.WriteLine("Oid1: Automatically assigned Friendly Name: {0}, {1}", o1.FriendlyName, o1.Value);
Console.WriteLine("Oid2: Automatically assigned Value: {0}, {1}", o2.FriendlyName, o2.Value);
Console.WriteLine("Oid3: Name and Value not compared: {0}, {1}", o3.FriendlyName, o3.Value);
Console.WriteLine("Oid4: Invalid Value used: {0}, {1} {2}", o4.FriendlyName, o4.Value, Environment.NewLine);
//Create an Oid collection and add several Oid objects.
OidCollection oc = new OidCollection();
oc.Add(o1);
oc.Add(o2);
oc.Add(o3);
Console.WriteLine("Number of Oids in the collection: {0}", oc.Count);
Console.WriteLine("Is synchronized: {0} {1}", oc.IsSynchronized, Environment.NewLine);
//Create an enumerator for moving through the collection.
OidEnumerator oe = oc.GetEnumerator();
//You must execute a MoveNext() to get to the first item in the collection.
oe.MoveNext();
// Write out Oids in the collection.
Console.WriteLine("First Oid in collection: {0},{1}", oe.Current.FriendlyName,oe.Current.Value);
oe.MoveNext();
Console.WriteLine("Second Oid in collection: {0},{1}", oe.Current.FriendlyName, oe.Current.Value);
//Return index in the collection to the beginning.
oe.Reset();
}
}
Imports System.Security.Cryptography
Public Class OidSample
Shared msg As String
Public Shared Sub Main()
' Assign values to strings.
Dim Value1 As String = "1.2.840.113549.1.1.1"
Dim Name1 As String = "3DES"
Dim Value2 As String = "1.3.6.1.4.1.311.20.2"
Dim InvalidName As String = "This name is not a valid name"
Dim InvalidValue As String = "1.1.1.1.1.1.1.1"
' Create new Oid objects using the specified values.
' Note that the corresponding Value or Friendly Name property is automatically added to the object.
Dim o1 As New Oid(Value1)
Dim o2 As New Oid(Name1)
' Create a new Oid object using the specified Value and Friendly Name properties.
' Note that the two are not compared to determine if the Value is associated
' with the Friendly Name.
Dim o3 As New Oid(Value2, InvalidName)
'Create a new Oid object using the specified Value. Note that if the value
' is invalid or not known, no value is assigned to the Friendly Name property.
Dim o4 As New Oid(InvalidValue)
'Write out the property information of the Oid objects.
msg = "Oid1: Automatically assigned Friendly Name: " & o1.FriendlyName & ", " & o1.Value
MsgBox(msg)
'Console.WriteLine("Oid1: Automatically assigned Friendly Name: {0}, {1}", o1.FriendlyName, o1.Value)
'Console.WriteLine("Oid2: Automatically assigned Value: {0}, {1}", o2.FriendlyName, o2.Value)
msg = "Oid2: Automatically assigned Value: " & o2.FriendlyName & ", " & o2.Value
MsgBox(msg)
'Console.WriteLine("Oid3: Name and Value not compared: {0}, {1}", o3.FriendlyName, o3.Value)
msg = "Oid3: Name and Value not compared: " & o3.FriendlyName & ", " & o3.Value
MsgBox(msg)
' Console.WriteLine("Oid4: Invalid Value used: {0}, {1} {2}", o4.FriendlyName, o4.Value, Environment.NewLine)
msg = "Oid4: Invalid Value used: " & o4.FriendlyName & ", " & o4.Value
MsgBox(msg)
'Create an Oid collection and add several Oid objects.
Dim oc As New OidCollection()
oc.Add(o1)
oc.Add(o2)
oc.Add(o3)
' Console.WriteLine("Number of Oids in the collection: {0}", oc.Count)
' Console.WriteLine("Is synchronized: {0} {1}", oc.IsSynchronized, Environment.NewLine)
msg = "Number of Oids in the collection: " & oc.Count
MsgBox(msg)
msg = "Is synchronized: " & oc.IsSynchronized
MsgBox(msg)
'Create an enumerator for moving through the collection.
Dim oe As OidEnumerator = oc.GetEnumerator()
'You must execute a MoveNext() to get to the first item in the collection.
oe.MoveNext()
' Write out Oids in the collection.
'Console.WriteLine("First Oid in collection: {0},{1}", oe.Current.FriendlyName, oe.Current.Value)
msg = "First Oid in collection: " & oe.Current.FriendlyName & ", " & oe.Current.Value
MsgBox(msg)
oe.MoveNext()
' Console.WriteLine("Second Oid in collection: {0},{1}", oe.Current.FriendlyName, oe.Current.Value)
msg = "Second Oid in collection: " & oe.Current.FriendlyName & ", " & oe.Current.Value
MsgBox(msg)
'Return index in the collection to the beginning.
oe.Reset()
End Sub
End Class
Uwagi
Po utworzeniu modułu wyliczającego jest on umieszczony przed pierwszym elementem kolekcji, a pierwsze wywołanie MoveNext metody przenosi moduł wyliczający nad pierwszym elementem kolekcji. Kolejne wywołania, aby przejść do MoveNext modułu wyliczającego obok kolejnych elementów w kolekcji.
Po przekazaniu końca kolekcji wywołania w celu MoveNext zwrócenia false
elementu .
Moduł wyliczający jest ważny, o ile kolekcja pozostaje niezmieniona. Jeśli zmiany zostaną wprowadzone w kolekcji, takie jak dodawanie, modyfikowanie lub usuwanie elementów, moduł wyliczający staje się nieprawidłowy, a następne wywołanie MoveNextInvalidOperationExceptionzwraca wartość .