ReadOnlyArrayAttribute Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
При применении к параметру массива в компоненте Windows Runtime указывает, что содержимое массива, передаваемого в этот параметр, используется только для ввода. Вызывающий объект ожидает, что массив не изменяется при вызове.
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
- Наследование
- Атрибуты
Комментарии
Если параметр массива в компоненте Windows Runtime передается по значению (ByVal в Visual Basic), необходимо применить к нему один из следующих атрибутов:
Примените атрибут, ReadOnlyArrayAttribute если вы планируете использовать содержимое массива только для входных данных.
WriteOnlyArrayAttribute Примените атрибут, если планируется использовать содержимое массива только для выходных данных (то есть метод задает содержимое массива, но не считывает их).
Применение обоих атрибутов к параметру приводит к ошибке.
Это важно
Параметры, имеющие атрибут, ведут себя по-разному в зависимости от того, ReadOnlyArrayAttribute написан ли вызывающий объект в машинном коде или управляемом коде. Если вызывающий объект является машинным кодом (расширения компонентов JavaScript или Visual C++), массив копируется, когда вызов пересекает границу двоичного интерфейса приложения (ABI). Элементы преобразуются при необходимости. Поэтому любые случайные изменения, внесенные методом в массив только для ввода, не видны вызывающей функции.
Если вызывающий объект является управляемым кодом, массив не копируется. Исходный массив доступен вызываемому методу, так как он будет находиться в любом вызове метода в .NET Framework. Содержимое массива меняется в коде .NET Framework, поэтому любые изменения, внесенные в массив, видны вызывающей функции. Это важно помнить, так как это влияет на модульные тесты, написанные для компонента Windows Runtime. Если тесты записываются в управляемый код, содержимое массива будет изменяться во время тестирования.
Применение этого атрибута к параметру, который имеет 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) |