Compartilhar via


ReadOnlyArrayAttribute Classe

Definição

Quando aplicado a um parâmetro de matriz em um componente Windows Runtime, especifica que o conteúdo da matriz passada para esse parâmetro é usado apenas para entrada. O chamador espera que a matriz não seja alterada pela chamada.

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
Herança
ReadOnlyArrayAttribute
Atributos

Comentários

Se um parâmetro de matriz no componente Windows Runtime for passado por valor (ByVal em Visual Basic), você deverá aplicar um dos seguintes atributos a ele:

  • Aplique o ReadOnlyArrayAttribute atributo se você pretende que o conteúdo da matriz seja usado apenas para entrada.

  • Aplique o WriteOnlyArrayAttribute atributo se você pretende que o conteúdo da matriz seja usado somente para saída (ou seja, o método define o conteúdo da matriz, mas não os lê).

Aplicar ambos os atributos a um parâmetro causa um erro.

Importante

Parâmetros que têm o ReadOnlyArrayAttribute atributo se comportam de forma diferente dependendo se o chamador é escrito em código nativo ou código gerenciado. Se o chamador for código nativo (extensões de componente JavaScript ou Visual C++), a matriz será copiada quando a chamada cruzar o limite da ABI (interface binária do aplicativo). Os elementos são convertidos, se necessário. Portanto, as alterações acidentais feitas pelo método em uma matriz somente de entrada não são visíveis para o chamador.

Se o chamador for um código gerenciado, a matriz não será copiada. A matriz original está disponível para o método chamado, como seria em qualquer chamada de método no .NET Framework. O conteúdo da matriz é mutável em .NET código da Estrutura, portanto, todas as alterações feitas pelo método na matriz ficam visíveis para o chamador. Isso é importante lembrar porque afeta testes de unidade gravados para um componente Windows Runtime. Se os testes forem gravados em código gerenciado, o conteúdo de uma matriz parecerá mutável durante o teste.

Aplicar esse atributo a um parâmetro que tem o InAttribute atributo ou OutAttribute causa um erro quando o módulo é exportado. Aplicar o atributo a um out parâmetro também causa um erro.

Construtores

Nome Description
ReadOnlyArrayAttribute()

Inicializa uma nova instância da classe ReadOnlyArrayAttribute.

Propriedades

Nome Description
TypeId

Quando implementado em uma classe derivada, obtém um identificador exclusivo para esse Attribute.

(Herdado de Attribute)

Métodos

Nome Description
Equals(Object)

Retorna um valor que indica se essa instância é igual a um objeto especificado.

(Herdado de Attribute)
GetHashCode()

Retorna o código hash dessa instância.

(Herdado de Attribute)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
IsDefaultAttribute()

Quando substituído em uma classe derivada, indica se o valor dessa instância é o valor padrão para a classe derivada.

(Herdado de Attribute)
Match(Object)

Quando substituído em uma classe derivada, retorna um valor que indica se essa instância é igual a um objeto especificado.

(Herdado de Attribute)
MemberwiseClone()

Cria uma cópia superficial do Objectatual.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Implantações explícitas de interface

Nome Description
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de expedição.

(Herdado de Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Recupera as informações de tipo de um objeto, que podem ser usadas para obter as informações de tipo de uma interface.

(Herdado de Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Retorna o número de interfaces de informações do tipo que um objeto fornece (0 ou 1).

(Herdado de Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Fornece acesso a propriedades e métodos expostos por um objeto.

(Herdado de Attribute)

Aplica-se a

Confira também