WriteOnlyArrayAttribute 類別

定義

當套用至 Windows 執行階段元件中的陣列參數時,會指定傳遞至該參數的陣列內容只能用於輸出。 呼叫端不保證內容都已初始化,且所呼叫的方法應該不會讀取內容。

public ref class WriteOnlyArrayAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Parameter, AllowMultiple=false, Inherited=false)]
public sealed class WriteOnlyArrayAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Parameter, AllowMultiple=false, Inherited=false)>]
type WriteOnlyArrayAttribute = class
    inherit Attribute
Public NotInheritable Class WriteOnlyArrayAttribute
Inherits Attribute
繼承
WriteOnlyArrayAttribute
屬性

備註

如果 Windows 執行階段元件中的陣列參數是 ByVal 以 Visual Basic) 中的值 (傳遞,則您必須將下列其中一個屬性套用至其中:

  • ReadOnlyArrayAttribute如果您想要將陣列的內容用於輸入,請套用屬性。

  • WriteOnlyArrayAttribute如果您想要將陣列的內容用於輸出,請套用屬性 (也就是說,方法會設定陣列的內容,但不會) 讀取這些內容。

將這兩個屬性套用至參數會導致錯誤。 如需詳細資訊(包括變更陣列的標準模式),請參閱將陣列傳遞至Windows 開發人員中心中的 Windows 執行階段元件。

重要

具有屬性的參數 WriteOnlyArrayAttribute 行為會根據呼叫端是以機器碼還是 managed 程式碼撰寫而有所不同。 如果呼叫端是機器碼 (JavaScript 或 Visual C++ 元件) 延伸模組,則呼叫的方法無法對原始陣列的內容進行任何假設。 例如,方法接收的陣列可能無法初始化,或可能包含預設值。 方法應該在陣列中設定所有項目的值。

如果呼叫端是 managed 程式碼,呼叫端的原始陣列會傳遞至呼叫的方法,因為它會在 .NET Framework 的任何方法呼叫中。 陣列內容在 managed 程式碼中是可變動的,因此方法可以選擇性地讀取及變更這些值。 這點很重要,因為它會影響針對 Windows 執行階段元件所撰寫的單元測試。 如果測試是以 managed 程式碼撰寫,陣列內容在測試期間看起來會是可變動的,而且如果稍後從機器碼呼叫方法,則結果可能會不同。

將這個屬性套用至 out 參數或具有屬性的參數, InAttribute 會在匯出模組時導致錯誤。 除非參數也有 Visual Basic 修飾詞,否則將屬性套用至具有屬性的參數 OutAttribute 會導致錯誤 ByRef 。 在這種情況下,屬性會是多餘的,但允許的。

建構函式

WriteOnlyArrayAttribute()

初始化 WriteOnlyArrayAttribute 類別的新執行個體。

屬性

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)

將一組名稱對應至一組對應的分派識別項 (Dispatch Identifier)。

(繼承來源 Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

擷取物件的類型資訊,可以用來取得介面的類型資訊。

(繼承來源 Attribute)
_Attribute.GetTypeInfoCount(UInt32)

擷取物件提供的類型資訊介面數目 (0 或 1)。

(繼承來源 Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

提供物件所公開的屬性和方法的存取權。

(繼承來源 Attribute)

適用於

另請參閱