내보내기(0) 인쇄
모두 확장
이 문서는 수동으로 번역한 것입니다. 원본 텍스트를 보려면 포인터를 문서의 문장 위로 올리십시오.
번역
원본

특성 사용 지침

.NET Framework에서 개발자는 새로운 종류의 선언적 정보를 고안하고 다양한 프로그램 엔터티에 대해 선언적 정보를 지정하고 런타임 환경에서 특성 정보를 검색할 수 있습니다. 예를 들어, 프레임워크에서는 클래스 및 메서드 등의 프로그램 요소에 놓일 수 있는 HelpAttribute 특성을 정의하여 프로그램 요소와 해당 요소의 설명을 매핑할 수 있습니다. 새로운 종류의 선언적 정보는 위치 매개 변수와 명명된 매개 변수를 가질 수 있는 특성 클래스의 선언을 통해 정의됩니다. 특성에 대한 자세한 내용은 사용자 지정 특성 작성을 참조하십시오.

다음 규칙은 특성 클래스의 사용 지침을 요약한 것입니다.

  • 다음 예제에서와 같이 사용자 지정 특성 클래스에는 Attribute 접미사를 추가합니다.

    Public Class ObsoleteAttribute
    
    

    public class ObsoleteAttribute{}
    
  • 다음 예제에서와 같이 특성에 대한 AttributeUsage 를 지정하여 해당 특성의 사용을 정확하게 정의합니다.

    <AttributeUsage(AttributeTargets.All, Inherited := False, AllowMultiple := True)>  _
    
    Public Class ObsoleteAttribute
       Inherits Attribute
       ' Insert code here.
    End Class
    
    

    [AttributeUsage(AttributeTargets.All, Inherited = false, AllowMultiple = true)]
    public class ObsoleteAttribute: Attribute {}
    
  • 특성 클래스에서 클래스를 파생시킬 수 없도록 가능하면 항상 특성 클래스를 봉인합니다.

  • 필수 매개 변수에 위치 인수(생성자 매개 변수)를 사용합니다. 각 위치 인수와 이름이 같은 읽기 전용 속성을 제공하되 대문자 표시 스타일은 서로 다르게 변경합니다. 이렇게 하면 런타임에 인수에 액세스할 수 있습니다.

  • 선택적 매개 변수에 대해 명명된 인수를 사용하고 각각의 명명된 인수에 대해 읽기/쓰기 속성을 제공합니다.

  • 명명된 인수와 위치 인수가 모두 있는 매개 변수는 정의하지 않습니다. 다음 코드 예제에서는 이러한 패턴을 보여 줍니다.

    Public Class NameAttribute
       Inherits Attribute
       Private userNameValue as String
       Private ageValue as Integer
    
       ' This is a positional argument.
       Public Sub New(userName As String) 
          userNameValue = userName
       End Sub
       
       Public ReadOnly Property UserName() As String
          Get
             Return userNameValue 
          End Get
       End Property
       
       ' This is a named argument.
       Public Property Age() As Integer
          Get
             Return ageValue 
          End Get
          Set
             ageValue = value
          End Set 
       End Property
    End Class
    
    

    public class NameAttribute: Attribute 
    {
       string userName;
       int age;
    
       // This is a positional argument.
       public NameAttribute (string userName) 
       { 
           this.userName = userName;
       }
       public string UserName 
       { 
          get 
          {
             return userName; 
          }
       }
       // This is a named argument.
       public int Age 
       { 
          get 
          {
             return age;
          }
          set 
          {
             age = value;
          }
       } 
    }
    

Portions Copyright 2005 Microsoft Corporation. All rights reserved.

Portions Copyright Addison-Wesley Corporation. All rights reserved.

디자인 지침에 자세한 내용은 참조를 "Framework 디자인 지침: 규칙, 숙어, 및 재사용에 대 한 패턴입니다.NET 라이브러리"도 서 Krzysztof Cwalina와 Brad Abrams, 게시 Addison-wesley, 2005.

커뮤니티 추가 항목

추가
표시:
© 2014 Microsoft