DefaultValueAttribute 클래스에 대한 설명서가 혼동됩니다.

이 문서에서는 DefaultValueAttribute 클래스에 대한 혼란스러운 설명서를 설명합니다.

원래 제품 버전: .NET Framework
원본 KB 번호: 311339

요약

클래스에 대한 설명서DefaultValueAttribute 혼동될 수 있습니다. 특히 이 설명서에서는 다음을 설명합니다.
멤버의 기본값은 일반적으로 초기 값입니다.

이때 속성의 DefaultValue 특성을 설정하면 속성이 해당 값으로 초기화된다는 결론을 내릴 수 있습니다. 그러나 속성의 DefaultValue 특성을 초기화된 값과 동일하게 설정해야 합니다.

추가 정보

특성을 사용하여 메타데이터 확장 항목은 다음과 같습니다.

공용 언어 런타임을 사용하면 특성이라는 키워드(keyword) 같은 설명 선언을 추가하여 형식, 필드, 메서드 및 속성과 같은 프로그래밍 요소에 주석을 달 수 있습니다. 특성은 Microsoft .NET Framework 파일의 메타데이터와 함께 저장되며 런타임에 코드를 설명하거나 런타임 시 애플리케이션 동작에 영향을 주는 데 사용할 수 있습니다.

속성의 특성이 초기화된 값과 같으면 속성의 메타데이터에 액세스하여 기본값을 확인할 수 있습니다. 그런 다음 이 기본값을 사용하여 필요한 경우 해당 멤버 변수를 다시 설정할 수 있습니다. 특성을 사용하여 DefaultValue 멤버 변수에 대한 코드를 생성해야 하는지 여부를 결정하는 코드 생성기를 작성할 수도 있습니다. 초기 값을 올바르게 설정하려면 멤버 변수에 대한 코드를 생성해야 하는지 확인해야 합니다.

그러나 특성으로 DefaultValue 인해 초기 값이 특성의 값으로 초기화되지는 않습니다. 예를 들어 다음 코드 샘플에서 속성의 IsValueSet 기본값은 True 이고 True 값으로 초기화됩니다. 초기화되지 않은 경우 의 m_isValueSet 초기 값은 False입니다.

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

공통 언어 런타임에 메타데이터를 제공하도록 특성을 적용하는 방법에 대한 자세한 내용은 특성을 사용하여 메타데이터 확장을 참조하세요.

Visual Studio .NET 또는 Visual Studio와 같은 디자이너에서 구성 요소를 표시할 수 있으므로 구성 요소에는 디자인 타임 도구에 메타데이터를 제공하는 특성이 필요합니다.

디자인 타임에 컨트롤과 해당 멤버를 올바르게 표시하려면 디자인 타임 특성이 시각적 디자인 도구에 중요한 정보를 제공하기 때문에 필수적입니다. 예를 들어 다음 코드 조각 CategoryAttribute 에서 특성을 사용하면 속성 브라우저에서 속성을 범주에 Alignment 표시 TextAlignment 할 수 있습니다. DescriptionAttribute 특성을 사용하면 사용자가 클릭할 때 속성 브라우저에서 속성에 대한 간략한 설명을 제공할 수 있습니다.

[
    Category ("Alignment"),
    Description ("Specifies the alignment of text.")
]
public ContentAlignment TextAlignment { //... }
<Category("Alignment"), _
Description("Specifies the alignment of text.")> _
Public Property TextAlignment As ContentAlignment
    ' ...
End Property

참고

Visual C# .NET, Visual Basic .NET 또는 Visual Basic에서 특성 구문과 같이 AttributeName 단순히 라는 AttributeNameAttribute 특성 클래스를 참조할 수 있습니다.

참조

자세한 내용은 특성 개요를 참조하세요.