Artigo: 311339 - Última revisão: quarta-feira, 6 de Dezembro de 2006 - Revisão: 2.5

Documentação do MSDN para a classe DefaultValueAttribute pode ser confusa

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Expandir tudo | Reduzir tudo

Sumário

Pode encontrar a classe documentação DefaultValueAttribute o seguinte Web site da MSDN confuso:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemcomponentmodeldefaultvalueattributeclasstopic.asp (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemcomponentmodeldefaultvalueattributeclasstopic.asp)
Em particular, esta documentação indica:
Valor predefinido de um membro é normalmente o valor inicial.
Aqui, poderá concluir que, se definir o atributo DefaultValue para uma propriedade, a propriedade é inicializada para esse valor. No entanto, deve definir ValorPredefinido atributo a propriedade igual ao respectivo valor inicializado.

Mais Informação

O tópico de Extending Metadata Using Attributes (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguidnf/html/cpconextendingmetadatausingattributes.asp) no guia-o Microsoft .NET Framework Developer indica:
O common language runtime permite-lhe adicionar declarações descritivas semelhantes a palavra-chave, denominados atributos, para anotar elementos de programação, tais como tipos, campos, métodos e propriedades. Os atributos são guardados com os metadados de um ficheiro de Microsoft .NET Framework e podem ser utilizados para descrever o código para o tempo de execução ou para afectar o comportamento da aplicação em tempo de execução.
Se atributo a propriedade é igual a seu valor inicializado, pode aceder metadados a propriedade para determinar o valor predefinido. Em seguida, é possível utilizar este valor predefinido para repor a variável de membro correspondente se necessário. Pode também escrever geradores de código para utilizar o atributo DefaultValue para determinar se deve ser gerado código para a variável de membro. Tem de determinar se deve ser gerado código para a variável de membro definir o valor inicial correctamente.

No entanto, o atributo DefaultValue não fazer com que o valor inicial ser inicializada com o valor do atributo. Por exemplo, no seguinte exemplo de código, a propriedade IsValueSet tem um valor predefinido de Verdadeiro e também é inicializada para um valor Verdadeiro . Se não inicializado, o valor inicial de m_isValueSet é Falso .
[Visual Basic]
Imports System.ComponentModel
 
Public Class DefaultAttributeSample
    '
    ' You must still initialize your member variable to its default value; 
    ' the DefaultValue attribute does not do this.
    Private m_isValueSet As Boolean = True

    '
    ' The DefaultValue attribute should be equal to the member's initial
    ' value.
    <DefaultValueAttribute(True)> _
    Public Property IsValueSet() As Boolean
        Get
            IsValueSet = m_isValueSet
        End Get
        Set(ByVal Value As Boolean)
            m_isValueSet = Value
        End Set
    End Property

End Class
				
para obter mais informações sobre como aplicar atributos para que fornecem metadados para o common language runtime, consulte o seguinte Web site da MSDN:
Expandir com atributos de metadados
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguidnf/html/cpconextendingmetadatausingattributes.asp (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguidnf/html/cpconextendingmetadatausingattributes.asp)
Uma vez que é possível apresentar componentes num estruturador como o Visual Studio .NET ou Visual Studio 2005, componentes necessitam de atributos que fornecem metadados para as ferramentas de estruturação.

Para apresentar correctamente o controlo e os respectivos membros no momento da estruturação, atributos de estruturação são essenciais porque fornecem informações valiosas para uma ferramenta de estrutura visual. Por exemplo, no seguinte fragmento de código, o atributo CategoryAttribute permite o browser de propriedade para apresentar a propriedade TextAlignment na categoria de Alinhamento . O atributo DescriptionAttribute permite que o browser de propriedade para fornecer uma breve descrição da propriedade quando um utilizador clica no mesmo.
[Visual C#]
   [
      Category("Alignment"),
      Description("Specifies the alignment of text.")
   ]
   public ContentAlignment TextAlignment { //... }
				
[Visual Basic]
   <Category("Alignment"), _
    Description("Specifies the alignment of text.")> _
   Public Property TextAlignment As ContentAlignment
      ' ...
   End Property
				
Nota : no Microsoft Visual C# .NET, no Microsoft Visual Basic .NET ou no Microsoft Visual Basic 2005, pode referenciar uma classe de atributo denominada AttributeNameAttribute simplesmente como NomeAtributo na sintaxe do atributo.

Referências

Para mais informações, consulte Guia de documentação o seguinte Microsoft .NET Framework para programadores do:
Descrição geral de atributos
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguidnf/html/cpconattributesoverview.asp (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguidnf/html/cpconattributesoverview.asp)

A informação contida neste artigo aplica-se a:
  • Microsoft Visual Basic 2005
  • Microsoft Visual Studio .NET 2003 Professional Edition
  • Microsoft Visual Studio .NET 2002 Professional Edition
Palavras-chave: 
kbmt kbvs2005swept kbvs2005applies kbcompmodel kbinfo KB311339 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 311339  (http://support.microsoft.com/kb/311339/en-us/ )