PropertyEnumerator.Current プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
コレクション内の現在の DtsProperty 要素を返します。
public:
property Microsoft::SqlServer::Dts::Runtime::DtsProperty ^ Current { Microsoft::SqlServer::Dts::Runtime::DtsProperty ^ get(); };
public Microsoft.SqlServer.Dts.Runtime.DtsProperty Current { get; }
member this.Current : Microsoft.SqlServer.Dts.Runtime.DtsProperty
Public ReadOnly Property Current As DtsProperty
プロパティ値
DtsProperty オブジェクト。
例
以下のコードサンプルは PropertyEnumeratorを作成し、その後、 MoveNext メソッドと Current メソッドを使ってコレクションを移動する方法を示しています。
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SqlServer.Dts.Runtime;
namespace DtsProperties_API
{
class Program
{
static void Main(string[] args)
{
Package pkg = new Package();
// Get the Properties collection from the package.
// This shows the default properties set on new packages.
DtsProperties pkgProperties = pkg.Properties;
// Create the enumerator.
PropertyEnumerator myEnumerator = pkgProperties.GetEnumerator();
// Show the use of the Contains method.
Boolean containsCertObj = pkgProperties.Contains("CertificateObject");
Console.WriteLine("Contains CertificateObject? {0}", containsCertObj);
// Show the use of the item[x] syntax.
String aName = pkgProperties[5].Name;
Console.WriteLine("Property 5 is {0}", aName);
// Show the use of the MoveNext and Current methods.
int i = 0;
while ((myEnumerator.MoveNext()) && (myEnumerator.Current != null))
{
Console.WriteLine("[{0}] {1}", i++, myEnumerator.Current.Name);
}
}
}
}
Imports System
Imports System.Collections.Generic
Imports System.Text
Imports Microsoft.SqlServer.Dts.Runtime
Namespace DtsProperties_API
Class Program
Shared Sub Main(ByVal args() As String)
Dim pkg As Package = New Package()
' Get the Properties collection from the package.
' This shows the default properties set on new packages.
Dim pkgProperties As DtsProperties = pkg.Properties
' Create the enumerator.
Dim myEnumerator As PropertyEnumerator = pkgProperties.GetEnumerator()
' Show the use of the Contains method.
Dim containsCertObj As Boolean = pkgProperties.Contains("CertificateObject")
Console.WriteLine("Contains CertificateObject? {0}", containsCertObj)
' Show the use of the item[x] syntax.
Dim aName As String = pkgProperties(5).Name
Console.WriteLine("Property 5 is {0}", aName)
' Show the use of the MoveNext and Current methods.
Dim i As Integer = 0
While (myEnumerator.MoveNext()) &&(myEnumerator.Current <> Nothing)
Console.WriteLine("[{0}] {1}",i = Console.WriteLine("[{0}] {1}",i + 1
End While
End Sub
End Class
End Namespace
出力例:
CertificateObjectを含んでいますか? True
性質5は構成です
[0] 証明書コンテキスト
[1] CertificateObject
[2] チェックポイントファイルネーム
[3] チェックポイントの使用
[4] CheckSignatureOnLoad
[5] 構成
[6] 接続
[7] 創設日
[8] 創造名
[9] クリエイターコンピュータネーム
[10] クリエイターネーム
[11] 遅延検証
. . .
[63] バージョンGUID
[64] バージョンメジャー
[65] バージョンマイナー
[66] 警告
注釈
列挙子が作成されるか、Resetメソッドに呼び出した後、列挙子がMoveNextプロパティの値を読み取る前に、Currentメソッドを呼び出してコレクションの最初の要素に進めなければなりません;そうでなければ、Currentは未定義となり例外を投げ出します。
Current また、 MoveNext の最後の呼び出しが false返された場合も例外がスローされます。これはコレクションの末尾を示します。
Currentは列挙子の位置を移動せず、CurrentまたはMoveNextが呼び出されるまで、Resetの連続した呼び出しは同じオブジェクトを返します。
列挙子は、コレクションが変更されない限り有効なままです。 コレクションに要素の追加、修正、削除などの変更が加えられると、列挙子は無効化され回復不能になります。そのため、次に MoveNext か Reset に電話をかけると InvalidOperationExceptionが投げられます。 しかし、 MoveNext と Currentの呼び出し間でコレクションが変更されると、 Current は列挙子が無効化されていても、設定された要素を返します。