ReadOnlyArrayAttribute クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
Windows Runtime コンポーネントの配列パラメーターに適用する場合、そのパラメーターに渡される配列の内容が入力にのみ使用されることを指定します。 呼び出し元は、呼び出しによって配列が変更されていないことを想定しています。
public ref class ReadOnlyArrayAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Parameter, AllowMultiple=false, Inherited=false)]
public sealed class ReadOnlyArrayAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Parameter, AllowMultiple=false, Inherited=false)>]
type ReadOnlyArrayAttribute = class
inherit Attribute
Public NotInheritable Class ReadOnlyArrayAttribute
Inherits Attribute
- 継承
- 属性
注釈
Windows Runtime コンポーネント内の配列パラメーターが値渡し (Visual Basic ByVal) の場合は、次のいずれかの属性を適用する必要があります。
配列の内容を入力にのみ使用する場合は、 ReadOnlyArrayAttribute 属性を適用します。
配列の内容を出力にのみ使用する場合は、 WriteOnlyArrayAttribute 属性を適用します (つまり、メソッドは配列の内容を設定しますが、読み取りません)。
パラメーターに両方の属性を適用すると、エラーが発生します。
Important
ReadOnlyArrayAttribute属性を持つパラメーターの動作は、呼び出し元がネイティブ コードとマネージド コードのどちらで記述されているかによって異なります。 呼び出し元がネイティブ コード (JavaScript または Visual C++ コンポーネント拡張機能) の場合、呼び出しがアプリケーション バイナリ インターフェイス (ABI) の境界を越えたときに配列がコピーされます。 要素は、必要に応じて変換されます。 そのため、メソッドが入力専用配列に対して行った誤った変更は、呼び出し元には表示されません。
呼び出し元がマネージド コードの場合、配列はコピーされません。 元の配列は、.NET Framework の任意のメソッド呼び出し内にあるように、呼び出されたメソッドで使用できます。 配列の内容は .NET Framework コードで変更可能であるため、メソッドが配列に加える変更はすべて呼び出し元に表示されます。 これは、Windows Runtime コンポーネント用に記述された単体テストに影響するため、覚えておく必要があります。 テストがマネージド コードで記述されている場合、配列の内容はテスト中に変更可能であるように見えます。
InAttribute属性または OutAttribute 属性を持つパラメーターにこの属性を適用すると、モジュールのエクスポート時にエラーが発生します。 属性を out パラメーターに適用すると、エラーも発生します。
コンストラクター
| 名前 | 説明 |
|---|---|
| ReadOnlyArrayAttribute() |
ReadOnlyArrayAttribute クラスの新しいインスタンスを初期化します。 |
プロパティ
| 名前 | 説明 |
|---|---|
| TypeId |
派生クラスで実装されている場合は、この Attributeの一意の識別子を取得します。 (継承元 Attribute) |
メソッド
| 名前 | 説明 |
|---|---|
| Equals(Object) |
このインスタンスが指定したオブジェクトと等しいかどうかを示す値を返します。 (継承元 Attribute) |
| GetHashCode() |
このインスタンスのハッシュ コードを返します。 (継承元 Attribute) |
| GetType() |
現在のインスタンスの Type を取得します。 (継承元 Object) |
| IsDefaultAttribute() |
派生クラスでオーバーライドされた場合、このインスタンスの値が派生クラスの既定値であるかどうかを示します。 (継承元 Attribute) |
| Match(Object) |
派生クラスでオーバーライドされた場合、このインスタンスが指定したオブジェクトと等しいかどうかを示す値を返します。 (継承元 Attribute) |
| MemberwiseClone() |
現在の Objectの簡易コピーを作成します。 (継承元 Object) |
| ToString() |
現在のオブジェクトを表す文字列を返します。 (継承元 Object) |
明示的なインターフェイスの実装
| 名前 | 説明 |
|---|---|
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
一連の名前を対応する一連のディスパッチ識別子に割り当てます。 (継承元 Attribute) |
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
インターフェイスの型情報を取得するために使用できるオブジェクトの型情報を取得します。 (継承元 Attribute) |
| _Attribute.GetTypeInfoCount(UInt32) |
オブジェクトが提供する型情報インターフェイスの数 (0 または 1) を取得します。 (継承元 Attribute) |
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
オブジェクトによって公開されるプロパティとメソッドへのアクセスを提供します。 (継承元 Attribute) |