[C#] 20180906 C#에 대한 기초 지식

9720 단어 C#
1. 대상을 대상으로 프로그래밍하는 세 가지 특징: 봉인, 계승, 다중
  • 봉인: 예를 들어 클래스, 인터페이스, 방법 등은 사용자가 대상의 사용법에만 관심을 가지고 대상의 실현에 관심을 가지지 않도록 한다
  • 계승: 기존 기능을 보존하는 토대에서 개선하는 과정으로 유형 간의 계승
  • 에 나타난다.
  • 다태적: 다중 형식으로 유형의 계승이나 인터페이스를 통해 프로그램의 복용성과 이식성을 향상시킨다
  • 2. 클래스의 구성원: 필드, 속성, 방법
    속성과 필드의 차이점:
    C#에서 우리는 매우 자유롭고 제한 없이 공유 필드에 접근할 수 있지만 일부 상황에서 우리는 필드에 특정한 범위의 값만 부여할 수 있도록 제한하기를 원할 수도 있다. 또는 필드에 읽거나 쓰기만 요구하거나 필드를 바꿀 때 대상의 다른 상태를 바꾸기를 원할 수도 있다. 이런 것들은 필드만으로는 할 수 없기 때문에 속성이 있다. 속성에는 두 개의 블록이 포함된다. set과 get,set 블록은 속성의 쓰기 작업을 담당하고 get 블록은 속성의 읽기 작업을 담당합니다.두 블록에서 set에서 부여된 값이 요구에 부합되는지 확인하고 부여할지 여부를 결정하는 등 다른 작업을 할 수 있습니다.그 중 하나가 부족하면 속성은 읽을 수 있거나 쓸 수 있습니다. set과 get 블록의 속성은 반드시 하나가 있어야 합니다. 읽을 수 없고 쓸 수 없는 속성은 의미가 없기 때문입니다.
    class MyClass
    
    {
           Private  string  name;
    
     public string Name
    
     {
    
      get {return Name;}
    
      set {Name=value;}
    
     }
    
    }

    (1) 속성은 안전을 보장할 수 있으며, 본 클래스에서 사용하지 않을 때 속성 이름을 사용하면 필드의 이름을 피할 수 있다.(2) 속성의 set과 get 함수는 필드의 일부 기능을 제한하여 특정한 목적을 달성할 수 있다.예: private int a=0;
    public int A
    {
         get{return this.a;}
         set
         {
             if(value >= 0 && value <= 100)
                  this.a=value;
             else
                  throw new Exception(" 。");
         }
    }

    (3) 속성은 데이터를 저장하는 기능이 없고 데이터가 모두 필드에 존재하기 때문에 필드의 데이터를 수정해야만 데이터를 변경할 수 있고 속성의 값을 수정해도 소용없다.
    3. 구조 방법과 분석 방법의 구조 방법은 클래스의 대상을 만들 때 집행되고 분석 방법은 쓰레기를 회수하고 자원을 방출할 때 사용된다.
    구조 방법: 시스템이 자동으로 생성한 파라미터가 포함되지 않은 클래스 이름과 같은 구조 방법 분석 방법: ~ 클래스 이름(), 프로그램이 끝난 후에 자동으로 호출된
    4. 방법의 재부팅: 방법의 명칭이 같고 매개 변수의 목록이 다르다(주로 [매개 변수의 개수] 또는 [매개 변수의 데이터 유형]으로 나타난다)
    5. 플러그인 클래스와 부분 클래스 플러그인 클래스: 한 클래스를 다른 클래스의 내부에 정의하면 클래스 내부에 정의된 클래스를 플러그인 클래스라고 할 수 있다. 방문할 때 반드시 외부 클래스의 명칭 부분 클래스를 추가해야 한다. 한 클래스의 일부분을 나타내고 플러그인 플러그인 파티얼 클래스 이름 {...}을 나타낸다. 일부 클래스는 한 클래스의 내용이 비교적 많을 때 비슷한 클래스의 내용을 다른 클래스로 나누는 데 사용된다.그리고 일부 클래스의 명칭은 반드시 같아야 한다
    6. 상속 및 멀티태스킹 C# 언어는 단일 상속만 지원하며 코드의 재사용 문제를 해결하는 데 주로 사용됩니다.계승 관계를 프로그램 설계에 유연하게 활용하기 위해 C# 언어에 인터페이스를 제공하여 다중 계승의 관계를 해결하였다
    방법 숨김 - new 키워드 계승 중자류에서 정의한 방법은 부류와 동명이며, 부류의 방법을 호출한다. 즉, 부류의 동명 방법을 숨기기 위해 동명 방법을 명확히 하기 위해 부류의 방법 반환값 앞에 new 키워드를 추가하여 상속 관계에서 부류의 구성원을 호출해야 한다면base 키워드를 빌려 완성할 수 있다.
    7. 추상적인 방법과 허위적인 방법virtual 키워드: 허위적인 방법은 보통 클래스의 구성원을 가상으로 정의한다. 이 구성원들은 계승 후에 그 내용을 다시 쓸 것이다. static로 수식한 구성원은 수식할 수 없다. 서브클래스는 부류를 계승한 후에 부류의 구성원을 다시 쓸 수 없다. 관건적인 글자는override이다.
    abstract 키워드: 추상적 방법/추상적 방법 추상적 방법은 방법체를 포함하지 않는 방법으로 방법의 정의만 포함하고 추상적 클래스에 정의해야 한다.추상류는 실례화할 수 없다.
    실제 응용에서 하위 클래스는 부모 클래스의 허법이나 추상적인 방법만 다시 쓸 수 있다. [부모 클래스의 방법을 사용할 필요가 없을 때 추상적인 방법으로 정의한다. 그렇지 않으면 허법으로 정의한다.]
    8.sealed 밀봉류와 밀봉방법 밀봉방법은 반드시 자류에 나타나야 하고 자류가 다시 쓰는 부류 방법이다.즉 sealed는 오버라이드 키워드와 함께 사용해야 한다.밀봉류는 계승될 수 없고, 밀봉 방법은 다시 쓸 수 없다.
    9. 계승 실현 다태를 사용하는 것은 사실상 자류가 부류를 계승한 후에 부류의 허법이나 추상적인 방법을 다시 쓴 것을 말한다.부모 클래스를 만드는 대상이 모든 하위 클래스를 가리킬 때 호출된 하위 클래스에 따라 다시 쓰는 방법이 달라집니다.상속을 사용하여 다태를 실현하려면 다음과 같은 두 가지 조건을 충족시켜야 한다. - 하위 클래스가 상위 클래스를 상속할 때 상위 클래스를 다시 쓰는 방법이 있어야 한다. - 다시 쓰는 방법을 호출할 때 상위 클래스의 대상을 하위 클래스, 즉 하위 클래스를 상위 클래스로 전환해야 한다//상위 클래스의 실례명 = new 하위 클래스().
    C# 언어의 멀티태스킹을 실행할 때 멀티태스킹이라고 한다. 즉, 프로그램이 실행될 때 자동으로 부류의 실례를 하위 클래스에서 다시 쓰는 방법을 호출하는 것이다. 이것은 프로그램 컴파일 단계에서 완성된 것이 아니다.
    10. 인터페이스는 C# 언어에서 클래스 간의 계승 관계는 단일 계승만 지원하고 인터페이스는 다중 계승 관계를 실현하기 위해 설계된 것이다.하나의 클래스는 여러 개의 인터페이스를 동시에 실현할 수 있고 인터페이스를 실현하는 동시에 다른 클래스를 계승할 수 있으며 인터페이스 간에도 계승할 수 있다.
    interface 인터페이스 이름 {인터페이스 구성원}
    인터페이스 구성원에 대한 요구 사항:
  • public,private,protected,internal 액세스 수식자 사용 불가
  • static,virtual,abstract,sealed 수식자 사용 불가
  • 필드를 정의할 수 없음
  • 정의된 방법은 방법체를 포함할 수 없음
  • 11. 인터페이스의 실현 C# 언어 규정에 따라 인터페이스를 직접 만들 수 없는 실례는 클래스를 통해서만 인터페이스의 방법을 실현할 수 있다. 즉, 인터페이스를 다시 쓰는 방법은 클래스가 하나의 인터페이스를 실현할 때 인터페이스의 모든 구성원을 실현해야 한다. 그렇지 않으면 이 클래스는 반드시 추상 클래스로 명시되고 인터페이스에서 실현되지 않은 구성원을 추상적인 방식으로 실현해야 한다.
    스텔스 구현 인터페이스: 인터페이스의 모든 구성원을public로 접근 수식자 수식현식 구현 인터페이스: 실현된 구성원 이름 앞에 인터페이스 이름을 접두사로 하고 수식자 수식을 사용하지 않습니다
    현식 방식으로 이루어진 인터페이스 구성원을 호출할 때에는 반드시 인터페이스의 실례를 사용해야 하며, 실현 클래스의 실례를 사용해서는 안 된다. 일반적으로 은식 실현 인터페이스를 사용한다.
    12. 추상 클래스와 인터페이스의 차이점:
  • 인터페이스에서 구성원만 정의할 수 있으나 구체적인 실현은 할 수 없다.추상류는 추상 구성원을 제외한 다른 구성원은 구체적인 실현을 허용한다
  • 인터페이스에서 필드를 성명할 수 없고 개인 구성원을 성명할 수 없으며 구성원은 수식자를 포함할 수 없다.추상 클래스에서 임의의 구성원을 성명할 수 있고, 그 어떠한 수식자도 사용할 수 있다.
  • 인터페이스는 클래스나 구조체를 사용하여 계승할 수 있지만 추상류는 클래스 계승만 사용할 수 있다
  • 클래스를 사용하여 인터페이스를 실현할 때 인터페이스의 모든 구성원을 은밀하거나 현저하게 실현해야 한다. 그렇지 않으면 실현 클래스를 추상 클래스로 정의하고 인터페이스에서 실현되지 않은 구성원을 추상적인 방식으로 실현해야 한다.클래스를 사용하여 추상류를 계승할 때 전체 또는 일부 구성원을 실현할 수 있지만 그 중의 일부 구성원만 실현할 수 있기 때문에 그 현류도 추상류로 정의해야 한다.
  • 하나의 인터페이스는 여러 개의 인터페이스를 계승할 수 있고, 하나의 클래스는 하나의 부류만 있을 수 있다
  • 13. 인터페이스 실현 다태적 여러 종류를 통해 같은 인터페이스를 계승하고 인터페이스 중의 구성원도 다태적 표시를 완성할 수 있다
    충족해야 할 조건: - 인터페이스를 정의하고 클래스를 사용하여 인터페이스의 구성원 - 인터페이스를 만드는 실례는 서로 다른 구현 클래스 대상을 가리킨다//인터페이스 이름 실제 예명 = new 계승 클래스().
    14. 범형 비공식 유형, 범형 방법, 범형류, 범형 집합
    15. 파일 및 스트림 #
    16. 의뢰와 사건
    위탁: 어떤 방법을 위탁하여 구체적인 기능을 실현한다.의뢰를 정의할 때 방법과 비슷하지만 방법이라고 할 수 없는 인용 유형이다.단계:
  • 정의 성명 의뢰
  • 실례화 의뢰
  • 호출 의뢰
  • 위임은 C# 언어의 특징으로 일반적으로 위임을 다음과 같이 나눈다.
  • 명명방법 의뢰
  • 멀티캐스트 의뢰
  • 익명 의뢰
  • 17. 명명 방법 의뢰:
  • 수식자delegate 반환값 유형 의뢰명(파라미터 목록);
  • 위탁명실례명 = new 위탁명(방법명);
  • 실례명(파라미터 목록);

  • 의뢰에 방법명을 전달할 때 방법의 유형에 따라 정태적 방법(유명. 방법명), 실례적 방법(new 유명().메서드 이름)
    18. 멀티캐스트 의뢰: 한 의뢰에 여러 가지 방법을 등록하는 것을 말한다. 등록 방법에서 +/-호를 사용하여 추가 또는 취소 방법을 실현할 수 있다. 사용 시 주의해야 한다. 의뢰에 등록한 방법의 매개 변수 목록은 의뢰가 정의한 매개 변수 목록과 같아야 하고 그렇지 않으면 의뢰에 방법을 추가할 수 없다.
    class Order
    {
        public static void BuyFood()
        {
            Console.WriteLine(" ");
        }
        public static void BuyDrink()
        {
            Console.WriteLine(" ");
        }
        public static void BuyJunkfood()
        {
            Console.WriteLine(" ");
        }
    }
    
    class Program
    {
        public delegate void OrderDelegate();    // 
        static void Main(string[] args)
        {
            OrderDelegate mymymy= new OrderDelegate(Order.BuyFood);   // 
            mymymy+=Order.BuyDrink;                       // 
            mymymy+=Order.BuyJunkfood;
            mymymy();                                     // 
        }
    }

    19. 익명 의뢰: 익명 방법으로 의뢰에 등록하는데 실제적으로 의뢰에서 코드 블록을 정의하여 의뢰의 역할을 실현한다.
  • 정의 의뢰: 수식자delegate 반환값 유형 의뢰명(파라미터 목록);
  • 정의 익명 의뢰: 의뢰명 실례화 의뢰명 = delegate {코드 블록};
  • 익명 의뢰 호출: 실례화 위촉명(파라미터 목록);

  • 익명 의뢰를 사용할 때 방법을 정의하지 않고 실례화 의뢰를 할 때 구체적인 조작을 직접 실현했다.코드의 재사용을 잘 실현할 수 없기 때문에 의뢰 중의 코드를 한 번만 사용해야 하는 경우에 적용되고 코드가 비교적 적다.
    20. 사건 사건은 인용 유형이고 실제로는 특수한 의뢰이기도 하다.일반적으로 모든 사건의 발생은 발송과 수신자가 발생하고 사건은 위탁과 함께 사용해야 한다.이벤트를 정의하기 전에 의뢰를 정의해야 하고 이벤트를 정의한 후에 이벤트가 사용하는 방법을 정의하고 이벤트를 통해 의뢰를 호출해야 한다.
    수식자 이벤트 의뢰명 이벤트 이름 방문하기;
    class Program
    {
        public delegate void SayDelegate();                       // 
        pubic event SayDelegate SayEvent;                         // 
        public void SayHello()                                    // 
        {
            Console.WriteLine("Hello");
        }
        public void SayEventTrigger()                             // 
        {
            SayEvent();                                          // ,                
        }
    
        Static void Mainstring[] args)
        {
            Program program=new Program();                        // 
            program.SayEvent=new SayDelegate(program.SayHello);   // , 
            program.SayEventTrigger();                            // 
        }
    }

    좋은 웹페이지 즐겨찾기