반응형
- 인터페이스의 이름 앞에 I를 붙이는 것이 관례
- 다중 상속 가능
- 메서드, 속성, 인덱서, 이벤트 선언 할 수 있음
- 액세스 한정자를 붙이지 않지만 항상 public 임
- virtual과 static을 붙일 수 없음
class Warrior : IWeapon, IShield, IDamage
{
public int Attack { get; set; }
public int Defense { get; set; }
public int GetDamage() { return Attack - Defense; }
}
interface IWeapon
{
int Attack { get; set; }
}
interface IShield
{
int Defense { get; set; }
}
interface IDamage
{
int GetDamage();
}
IDisposable 인터페이스
- using 문을 사용하여 객체 생성
- using 문이 종료 될 때 자동으로 Dispose 메서드 호출
public class Door : IDisposable
{
public void Dispose()
{
Console.WriteLine($"문 닫고");
}
}
public class DoorTest
{
public DoorTest()
{
// using 문으로 객체를 생성하면 종료시 자동으로 Dispose() 메서드를 호출함
using (Door door = new Door()) // 생성
{
Console.WriteLine($"문 열고");
} // 종료
}
}
DoorTest d = new DoorTest();
반응형
'C#' 카테고리의 다른 글
C# String 함수(Contains, IsNullOrEmpty, IsNullOrWhiteSpace, StartsWith, Replace, Split, Substring) (0) | 2021.12.24 |
---|---|
C# 인덱서(Indexer) (0) | 2021.12.23 |
C# 클래스 형변환과 is, as (0) | 2021.12.23 |
C# 클래스 상속과 오버라이드 그리고 추상화 (0) | 2021.12.23 |
C# Nullable타입과 Null 조건 연산자 그리고 ?? 연산자 (0) | 2021.12.22 |