Поделиться через


ReadOnlyArrayAttribute Класс

Определение

При применении к параметру-массиву в компоненте среды выполнения Windows указывает, что содержимое массива, передаваемого в этом параметре, используется только в качестве входных данных. Вызывающий объект ожидает, что массив не изменится вызовом.

public ref class ReadOnlyArrayAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Parameter, AllowMultiple=false, Inherited=false)]
public sealed class ReadOnlyArrayAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Parameter, AllowMultiple=false, Inherited=false)>]
type ReadOnlyArrayAttribute = class
    inherit Attribute
Public NotInheritable Class ReadOnlyArrayAttribute
Inherits Attribute
Наследование
ReadOnlyArrayAttribute
Атрибуты

Комментарии

Если параметр массива в компоненте среда выполнения Windows передается по значению (ByVal в Visual Basic), к нему необходимо применить один из следующих атрибутов:

  • Примените атрибут , ReadOnlyArrayAttribute если предполагается, что содержимое массива будет использоваться только для входных данных.

  • Примените атрибут , WriteOnlyArrayAttribute если предполагается, что содержимое массива будет использоваться только для вывода (то есть метод задает содержимое массива, но не считывает его).

Применение обоих атрибутов к параметру приводит к ошибке. Дополнительные сведения, включая стандартный шаблон для внесения изменений в массив, см. в статье Передача массивов в компонент среда выполнения Windows в Центре разработки для Windows.

Важно!

Параметры с атрибутом ReadOnlyArrayAttribute ведут себя по-разному в зависимости от того, написан ли вызывающий объект в машинном или управляемом коде. Если вызывающий объект является машинным кодом (расширениями компонентов JavaScript или Visual C++), массив копируется, когда вызов пересекает границу двоичного интерфейса приложения (ABI). Элементы преобразуются при необходимости. Таким образом, любые случайные изменения, внесенные методом в массив только для ввода, не видны вызывающему объекту.

Если вызывающий объект является управляемым кодом, массив не копируется. Исходный массив доступен для вызываемого метода, как и в любом вызове метода в платформа .NET Framework. Содержимое массива может изменяться в коде .NET Framework, поэтому любые изменения, внесенные методом в массив, видны вызывающему объекту. Это важно помнить, так как это влияет на модульные тесты, написанные для компонента среда выполнения Windows. Если тесты написаны в управляемом коде, то во время тестирования содержимое массива выглядит изменяемым.

Применение этого атрибута к параметру с атрибутом InAttribute или OutAttribute вызывает ошибку при экспорте модуля. Применение атрибута к параметру out также вызывает ошибку.

Конструкторы

ReadOnlyArrayAttribute()

Инициализирует новый экземпляр класса ReadOnlyArrayAttribute.

Свойства

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)

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

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