WriteOnlyArrayAttribute 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
當套用至 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
- 繼承
- 屬性
備註
如果 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) |