티스토리 뷰

c# 인터페이스(interface) 그리고 IComparable, IDisposable 무엇

이번 글에서는 C#에서 사용되는 인터페이스(interface)라는
 기능에 대해서 공부해본 내용을 정리해보겠습니다.

인터페이스는 사용자가 코딩을 할 때 이런건
지켜주라고 가이드라인을 주는 것과 비슷합니다.

그래서 자기 마음대로 코딩하는 사람이 있다면,
그것을 방지할 수 있겠죠.

C#에서 Icomparable 사용하다.
IComparable 사용방법

대표적인 인터페이스로는 IComparable 이 있습니다.
이름 그대로 비교를 할 수 있게하는 인터페이스인데요.

여기서 대문자 I로 시작을 하는데
인터페이스는 암묵적으로 대문자I로 시작을 하자고 정했기 때문입니다.

위 Product클레스 에서는 IComparable 인터페이스를 상속받았습니다.
그렇기 때문에 CompareTo를 무조건 구현을 해주어야 합니다.
(그래서 밑에 매서드가 구현된 것을 알 수 있죠.)

예시 코드이다.

그리고 메인에서 사용을 해보겠습니다.

IComparable을 상속받았기 때문에

.Sort()매서드를 사용하여 정상적으로 정렬이 가능합니다.

결과는 정렬되었다.

그렇기 때문에 결과는 위와같이

price값으로 정렬이 되어서 출력이 되는 모습을 확인할 수 있습니다.

IDisposable이다.
c# IDisposable 사용방법

그 다음은 IDisposable인터페이스 입니다.

이 녀석은 using블록이 사용될 떄 때 자동으로 호출됩니다.

Dummy클레스는 IDisposable을 상속 받았기 때문에

using에서 사용하게되면 구문이 끝나게될 때 자동으로 Dispose() 매서드가 실행됩니다.

결과는 호출되었다.

위 결과 처럼 말이죠.

예시적 코드이다.


그 다음은 이제 사용자가 인터페이스를 만들어 주는 방법입니다.

위처럼 interface 그리고 I인터페이스 이름 이렇게 지정해줍니다.

멤버로는 인스턴스 매서드, 속성 을 넣을 수 있습니다.

이 때 구현은 할 수 없습니다.

상속받아서 사용한다.

구현은 상속받는 클래스 내부에서 해주면됩니다.

위와 같이 상속받은 클래스는 IBasic인터페이스가 가진 멤버를

모두 정의해 준 것을 알 수 있습니다.

(해주지 않으면 오류)

결과는 없다.

이렇게 해서 C#의 인터페이스(interface)에 대해서 알아보았는데요?

사실 C#에서는 클래스가 단 하나의 부모클래스 밖에 상속을 할 수 없습니다.

그래서 다중상속이 필요한 경우에는 인터페이스를 사용하게됩니다.

왜냐하면 클래스와는 다르게 인스턴스는 한 개 이상을 상속할 수 있기 때문입니다.
그렇다면 하나의 클래스가 다형성을 가지고 활용이 될 수 있겠죠.

C#관련된 다른 공부 하기

Dictionary 메모화 객체 사용하는 방법 효율적!

속성 겟터와 셋터(get, set)키워드 알아보자

인스턴스변수와 클래스변수

댓글
댓글쓰기 폼
네이버 이웃추가
«   2019/11   »
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함