허당 레몬도리
Published 2008. 10. 8. 13:45
한정자 가. 언어유형/C#

[abstract]

abstract 한정자는 클래스, 메서드, 속성, 인덱서 및 이벤트에 사용할 수 있습니다. 클래스 선언에 abstract 한정자를 사용하면 해당 클래스가 다른 클래스의 기본 클래스로만 사용됨을 나타낸다. abstract로 표시된 멤버나 abstract 클래스에 포함된 멤버는 해당 abstract 클래스에서 파생되는 클래스에 의해 구현되어야 한다.

[event]

event 키워드는 게시자 클래스에서 이벤트를 선언하는 데 사용.

public class Publisher
{
        // Declare the delegate (if using non-generic pattern).
        public delegate void SampleEventHandler(object sender, SampleEventArgs e);

        // Declare the event.
        public event SampleEventHandler SampleEvent;

        // Wrap the event in a protected virtual method
        // to enable derived classes to raise the event.

        protected virtual void RaiseSampleEvent()
        {
            // Raise the event by using the () operator.
            SampleEvent(this, new SampleEventArgs("Hello"));
        }
}

[extern]

extern 한정자는 외부에서 구현되는 메서드를 선언하는 데 사용된다. extern 한정자는 일반적으로 비관리 코드를 호출하기 위해 Interop 서비스를 사용할 때 DllImport 특성과 함께 사용된다. 이 경우 메서드는 다음 예제에서와 같이 static으로도 선언해야 한다.

using System;
using System.Runtime.InteropServices;
class MainClass
{
   [DllImport("User32.dll")]
   public static extern int MessageBox(int h, string m, string c, int type);

   static int Main()
   {
      string myString;
      Console.Write("Enter your message: ");
      myString = Console.ReadLine();
      return MessageBox(0, myString, "My Message Box", 0);
   }
}

[sealed]

sealed 한정자는 클래스, 인스턴스, 메서드 및 속성에 적용할 수 있다. 봉인 클래스는 상속할 수 없다. 봉인 메서드는 기본 클래스의 메서드를 재정의하지만 이후의 파생 클래스에서는 봉인 메서드 자체를 재정의할 수 없다. 메서드나 속성에 sealed 한정자를 적용하는 경우 항상 override(C# 참조)를 함께 사용해야 한다.


using System;
sealed class SealedClass
{
    public int x;
    public int y;
}

class MainClass
{
    static void Main()
    {
        SealedClass sc = new SealedClass();
        sc.x = 110;
        sc.y = 150;
        Console.WriteLine("x = {0}, y = {1}", sc.x, sc.y);
    }
}

[액서스한정자]

public: 액세스가 제한되지 않는다.

protected: 포함하는 클래스 또는 여기에서 파생된 형식으로 액세스가 된다.

Internal: 액세스가 현재 어셈블리로 된다.

protected internal: 현재 어셈블리 또는 포함하는 클래스에서 파생된 형식으로 액세스가 된다.

private: 액세스가 포함하는 형식으로 제한된다.




[출처]
[C#] 한정자|작성자 문성섭


profile

허당 레몬도리

@LemonDory

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!