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
- Наследование
- Атрибуты
Комментарии
Если параметр массива в компоненте среды выполнения Windows передается по значению (ByVal
в Visual Basic), к нему необходимо применить один из следующих атрибутов:
Примените атрибут , ReadOnlyArrayAttribute если предполагается, что содержимое массива будет использоваться только для входных данных.
Примените атрибут , WriteOnlyArrayAttribute если предполагается, что содержимое массива будет использоваться только для вывода (то есть метод задает содержимое массива, но не считывает его).
Применение обоих атрибутов к параметру приводит к ошибке. Дополнительные сведения, включая стандартный шаблон для внесения изменений в массив, см. в статье Передача массивов в компонент среды выполнения Windows в Центре разработки для Windows.
Важно!
Параметры с атрибутом WriteOnlyArrayAttribute ведут себя по-разному в зависимости от того, написан ли вызывающий объект в машинном или управляемом коде. Если вызывающий объект является машинным кодом (расширениями компонентов JavaScript или Visual C++), вызываемый метод не может делать никаких предположений относительно содержимого исходного массива. Например, массив, получаемый методом, может быть не инициализирован или может содержать значения по умолчанию. Предполагается, что метод установит значения всех элементов в массиве.
Если вызывающий объект является управляемым кодом, исходный массив вызывающего объекта передается в вызываемый метод, как и при любом вызове метода в .NET Framework. Содержимое массива в управляемом коде изменяемо, поэтому метод может выборочно считывать и изменять эти значения. Это важно помнить, так как это влияет на модульные тесты, написанные для компонента среды выполнения Windows. Если тесты написаны в управляемом коде, содержимое массива будет отображаться изменяемым во время тестирования, а результаты, скорее всего, будут отличаться при последующем вызове метода из машинного кода.
Применение этого атрибута к параметру out
или параметру с атрибутом InAttribute вызывает ошибку при экспорте модуля. Применение атрибута к параметру с атрибутом OutAttribute вызывает ошибку, если параметр также не содержит модификатор Visual Basic 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) |
Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации. (Унаследовано от Attribute) |
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Возвращает сведения о типе объекта, которые можно использовать для получения сведений о типе интерфейса. (Унаследовано от Attribute) |
_Attribute.GetTypeInfoCount(UInt32) |
Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1). (Унаследовано от Attribute) |
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Предоставляет доступ к открытым свойствам и методам объекта. (Унаследовано от Attribute) |