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 는 위치를 참조하는 방이 생기고, 실질적으로 값이 들어가는 방이 생긴다.
언박싱 -> 반대
'C# Study' 카테고리의 다른 글
c# 데이터집합(dataset) (0) | 2013.10.20 |
---|---|
c# 생성자 Reference Type, Value Type차이 Static 메소드 (0) | 2013.10.19 |
.NET 예외처리 (Exception) (0) | 2013.10.17 |
Visual Studio 2012 개념 정리 (0) | 2013.10.16 |
.Net Framework 정의 및 Visual Studio 관련 비교 (0) | 2013.10.14 |