게임 코드에서는 대미지, 회복량, 이동 속도처럼 계산 방식이 비슷한 수치가 계속 등장한다. 이를 모두 float로 표현하면 구현은 빠르지만, 회복량을 대미지 인수에 넘기는 실수도 컴파일을 통과한다.인터페이스로 공통 연산을 묶을 수도 있지만, 기존 인터페이스는 Zero 같은 정적 값이나 +, * 연산자를 계약으로 선언하기 어려웠다. C# 11의 static abstract interface member를 사용하면 값 타입의 의미를 유지하면서 범용 수치 연산을 만들 수 있다.1. 연산자를 인터페이스 계약에 포함하기먼저 게임 수치가 제공해야 할 연산을 정의한다.public interface IGameStat where TSelf : unmanaged, IGameStat{ static abstract..