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 ведут себя по-разному в зависимости от того, написан ли вызывающий объект в машинном или управляемом коде. Если вызывающий объект является машинным кодом (расширениями компонентов 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)

Применяется к

См. также раздел