Interface

게임 프로그래밍/C# / / 2021. 11. 12. 11:19

클래스와 비슷하게 인터페이스는 메서도, 속성, 이벤트, 인덱서 등을 갖지만, 인터페이스는 이를 직접 구현하지 않고 단지 정의만을 갖는다. 고로 클래스가 인터페이스를 가지는 경우 해당 인터페이스의 모든 멤버에 대한 구현을 제공해야 한다.

클래스는 하나의 베이스 클래스만을 가질 수 있지만 인터페이스는 여러 개를 가질 수 있다.

 

예시

//Component라는 베이스클래스와 IDbConnection,IDisposable 이라는 2개의 인터페이스를 상속받음.
public class MyConnection : Component, IDbConnection, IDisposable
{
}

 

-인터페이스의 정의

interface를 사용하여 정의한다. 정의 시 내부 멤버들에 대해 접근 제한자를 사용하지 않는다.

//interface 사용하여 정의
public interface IComparable
{
   //public 같은 접근 제한자 사용 불가
   int CompareTo(object obj);
}

 

-인터페이스 구현

위에 적었듯이 클래스가 인터페이스를 가지는 경우 인터페이스의 모든 멤버에 대한 구현을 제공해야 한다. c#에서는 인터페이스로부터 직접 new를 사용하여 객체를 생성할 수 없다.

//interface IComparable을 상속 받음.
public class MyClass : IComparable
{
   private int key;
   private int value;

   // IComparable 의 CompareTo 메서드 구현
   public int CompareTo(object obj)
   {
      MyClass target = (MyClass)obj;
      return this.key.CompareTo(target.key);
   }
}
 
 

'게임 프로그래밍 > C#' 카테고리의 다른 글

구조체와 클래스 차이  (0) 2021.11.12
델리게이트  (0) 2021.11.12
func, Action 델리게이트  (0) 2021.11.12
Delegate, Event  (0) 2021.11.12
일반화 컬렉션  (0) 2021.11.12
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기
위와 같은 스크립트 코드를 추가하면 H2가 두 개 이상이거나 H3가 두 개 이상인 경우 첫 번째 H2 헤딩 태그 앞에 목차를 표시합니다. 만약 H2가 한 개도 없으면 목차가 표시되지 않습니다. H3 이상부터 있는 경우에는 코드를 조금 수정해야 합니다. 다음과 비슷하게 하면 잘 작동합니다.