Default interface methods - C# 8.0 draft feature specificationsThis feature specification describe the syntax updates necessary to support default interface methods. This includes declaring bodies in interface declarations, and supporting modifiers on declarations.learn.microsoft.com
최-신 씨샵에서는 인터페이스에 함수를 정의만해두는게 아니라 실 동작내용도 넣을수가있어
동일한 동작에 대해 서로다른 클래스가 동일한 동작을 각자 작성하거나 공통클래스를 상속받지 않아도 공통된 기능을 포함시킬수 있다.
다만 번거로운점이 생기는것이, 함수가 클래스가 아니라 인터페이스에 있는것이기때문에
생성한 객체에서 해당함수를 호출하려면 각자의 인터페이스로 캐스팅을 먼저 해야된다는것이다.
인터페이스에 대한 확장메서드를 추가로 정의하여 컴파일 검증된 캐스팅과정을 은닉시킬수 있다.
하이라이트에 보이듯이 이름이 동일해도 재귀같은 문제없이 우선도에 맞춰 알아서 잘 호출해준다.
어디까지나 편의의 영역이므로 이거가지고 뇌절하다 코드를 망쳐선 안되겠지만
타입별 함수별로 이런필요가 많아질경우 속성과 소스제너레이터로 일괄 생성하도록 만들어봄직 하다
댓글 1