Language/C#.NET | Posted by 아키텍처 2012. 4. 24. 16:11

Attribute

 
 

Attribute

: 어트리뷰트는 클래스 안에 메타 정보를 포함시킬 수 있는 새로운 기술이다.

  어트리뷰트는 선언적 컴파일을 지원하기 때문에 코딩에 많은 이점을 더해주고 있다.

  특히 컴포넌트를 만들 때 유용하게 쓸 수 있다.

 

어트리뷰트(Attribute).

   - 런타임 시 필요한 정보들을 전달.

   - 클래스, 구조체, 열거형, 어셈블리 등에 정보 제공.

   - 일종의 특수한 주석, 프로그래밍 가능

   - [어트리뷰트명(지정위치 파라미터, 명명 파라미터)]

   - 내장 어트리뷰트 & 사용자 어트리뷰트

   - 일반 어트리뷰트, COM호환 어트리뷰트, 트랜잭션 어트리뷰트,

     비쥬얼 디자이너 컴포넌트 어트리뷰트

   - Conditional. DllImport, Obsolete

 

 Conditional

   - 디버깅에 사용.

   - 정의된 심볼에 따라서 메소드 호출 여부가 결정.

   - 메소드 반환형은 void

   - override 메소드에선 사용불가.

   - 인터페이스 구현 멤버 메소드도 불가

   - 전처리기

   - [Conditional("DEBUG")]

 

     #define DEBUG

     using System;
     using System.Diagnostics;

 

     class Test
     {
        [Conditional("DEBUG")]
        public static void DebugPrint()
        {
           Console.WriteLine("Debuging..");
        }

 

        public static void Main()
        {
           DebugPrint();
           Console.Read();
        }
     }//class

 

 

 DllImport

   - 외부 DLL을 호출하기 위한 어트리뷰트.

   - System.Runtime.InteropServices

 

 

      using System;
      using System.Runtime.InteropServices;

 

      class Test
      {
         [DllImport("User32.dll")]
         public static extern int MessageBox(int i, string text, string title, int type);

 

         [DllImport("kernel32.dll")]
         private static extern bool Beep(int freq, int dur);

 

         public static void Main()
         {
            MessageBox(0, "MessageBox Text", "DllImport Test", 3);
            Beep(2600, 1000);
            Console.Read();
         }
      }//class

 

 

 Obsolete

   - 더 이상 사용되지 않기를 권장하는 오래된 멤버를 구현할 때 사용.

 

     using System;

 

     class Test
     {
         [Obsolete("오래된 버젼입니다. MethodNew()를 사용하세요.")]
         public static void MethodOld()
         {
            Console.WriteLine("Old");
         }

 

         public static void MethodNew()
         {
            Console.WriteLine("New");
         }

 

         public static void Main()
         {
            MethodOld();
            Console.Read();
         }
     }//class

 

'Language > C#.NET' 카테고리의 다른 글

Machine Key  (0) 2012.04.24
Reflection  (0) 2012.04.24
C# 기초  (0) 2012.04.24
날짜차이계산  (0) 2012.04.24
ComboBox 만들기 메쏘드  (0) 2012.04.24
Posted by 김준홍 (http://www.Juuun.com)