WriteOnlyArrayAttribute 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
當套用到 Windows Runtime 元件中的陣列參數時,指定傳入該參數的陣列內容僅用於輸出。 呼叫端不保證內容已初始化,而且呼叫的方法不應該讀取內容。
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 Runtime元件中的陣列參數被傳遞值(ByVal Visual Basic),你必須對其套用以下其中一個屬性:
如果你打算將陣列內容只用於輸入,則套用該 ReadOnlyArrayAttribute 屬性。
如果你打算將陣列內容只用於輸出(也就是說,方法設定陣列內容但不讀取),則套用該 WriteOnlyArrayAttribute 屬性。
將兩個屬性套用到參數上會產生錯誤。
這很重要
帶有屬性的 WriteOnlyArrayAttribute 參數會根據呼叫者是用原生程式碼還是受管理程式碼撰寫而行為不同。 如果呼叫者是原生程式碼(JavaScript 或 Visual C++ 元件擴充),被呼叫的方法無法對原始陣列的內容做出任何假設。 例如,方法接收的陣列可能未被初始化,或包含預設值。 此方法預期會設定陣列中所有元素的值。
若呼叫者為受管理程式碼,呼叫者的原始陣列會傳遞給被呼叫的方法,就像 .NET 框架中任何方法呼叫一樣。 陣列內容在受管理程式碼中是可變的,因此方法可以選擇性地讀取並更改這些值。 這點很重要,因為它影響為 Windows Runtime 元件所撰寫的單元測試。 若測試以受管理程式碼撰寫,陣列內容在測試時看起來是可變的,且若後續從原生程式碼呼叫該方法,結果很可能會有所不同。
將此屬性套用於 out 參數或具有該 InAttribute 屬性的參數時,當模組匯出時會發生錯誤。 若將屬性套用到具有 OutAttribute 屬性的參數,則會產生錯誤,除非該參數同時帶有 Visual Basic ByRef 修飾符。 在這種情況下,屬性雖然多餘,但是被允許的。
建構函式
| 名稱 | Description |
|---|---|
| WriteOnlyArrayAttribute() |
初始化 WriteOnlyArrayAttribute 類別的新執行個體。 |
屬性
| 名稱 | Description |
|---|---|
| TypeId |
在衍生類別中實作時,取得這個 Attribute的唯一標識碼。 (繼承來源 Attribute) |
方法
| 名稱 | Description |
|---|---|
| Equals(Object) |
傳回值,這個值表示這個實例是否等於指定的物件。 (繼承來源 Attribute) |
| GetHashCode() |
傳回這個實例的哈希碼。 (繼承來源 Attribute) |
| GetType() |
取得目前實例的 Type。 (繼承來源 Object) |
| IsDefaultAttribute() |
在衍生類別中覆寫時,指出這個實例的值是否為衍生類別的預設值。 (繼承來源 Attribute) |
| Match(Object) |
在衍生類別中覆寫時,傳回值,指出這個實例是否等於指定的物件。 (繼承來源 Attribute) |
| MemberwiseClone() |
建立目前 Object的淺層複本。 (繼承來源 Object) |
| ToString() |
傳回表示目前 物件的字串。 (繼承來源 Object) |
明確介面實作
| 名稱 | Description |
|---|---|
| _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) |