티스토리 뷰

반응형

c# 인터페이스 (Interface) 및 Generic

 

커뮤니케이션 방법을 일원화 하기 위한 방법이다.

 

 

 

 

예를 들어

string , int, 등을 비교하기 위해서는 각각의 다른 메소드를 이용하는 것이 아니라

CompareTo 하나의 방법으로만 비교를 하겠다.

 

 

 

인터페이스는 여러개의 다중 상속을 허용한다.

한개의 Class에서 여러개의 인터페이스를 사용할 수 있다.

 

 

 

public interface ILoyaltyCardHolder   
    {
        int TotalPoints { get; }
        void AddPoints(decimal transactionValue);
        void ResetPoints();
    }

 

Body 가 들어갈 수 없고, 무조건 public이다.

Body 는 이를 상속받은 Class 에서 구현을 한다.

 

  public class Customer : ILoyaltyCardHolder
    {
        private int totalPoints;
        public int TotalPoints
        {
            get { return totalPoints; }
        }

 

 

 

 

보통 앞에 대문자를 넣어 정의를 내린다.

해당 부분에서 인터페이스구현이란 메뉴로 자동 코드 생성시킨다.

 

 

comparable 인터페이스의 경우 LINQ 에서 아주 간단하게 구현되기 때문에, 굳이 사용할 필요는 없을 것 같다.

 

 

 

 

 

Geneirc

 

Array 처럼 특정한 타입만을 저장할 수 있고, 방의 제한이 없다.

플렉서블한 개념

 

 

Type Safety : 런타임시 안정적이다. 특정 타입을 지정하기 때문에

No casting  : 형변환을 하지 않기 때문에 빠르다.

No boxing and unboxing :

 

박싱이란 ?

 

Value Type 을 Ref Type 으로 변환하는 작업

오버헤드가 발생

 

value 는 방이 하나만 생기는데,

ref 는 위치를 참조하는 방이 생기고, 실질적으로 값이 들어가는 방이 생긴다.

 

 

언박싱 -> 반대

 

반응형