• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

함수 시그니쳐부분에 대한 이해가 어렵습니다

21.01.11 02:07 작성 조회수 184

0

static Loader LoadJson<Loader, Key, Value>(string path) where Loader : ILoader<Key, Value>

{

     string text = File.ReadAllText($"{ConfigManager.Config.dataPath}/{path}.json");

     return Newtonsoft.Json.JsonConvert.DeserializeObject<Loader>(text);

}

DataManager.cs 파일에 있는 위 함수에서 Loder는 어디에 정의 되어있는 것이고LoadJson 뒤 부분인 <Loader, Key, Value> 는 왜 있는건가요?

답변 1

답변을 작성해보세요.

1

<T> 는 Generic이라는 문법입니다.
<> 안에 들어가 있는 애를 다른 타입으로 치환해서 사용하는 것입니다.
위 코드에서 where Loader : ILoader<Key, Value>라 했으니,
ILoader를 상속받은 클래스만 Loader로 넣을 수 있는 상황입니다.

C# Generic 관련해서 찾아보시면 도움이 될겁니다.