인프런 커뮤니티 질문&답변
함수 시그니쳐부분에 대한 이해가 어렵습니다
작성
·
271
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
Rookiss
지식공유자
<T> 는 Generic이라는 문법입니다.
<> 안에 들어가 있는 애를 다른 타입으로 치환해서 사용하는 것입니다.
위 코드에서 where Loader : ILoader<Key, Value>라 했으니,
ILoader를 상속받은 클래스만 Loader로 넣을 수 있는 상황입니다.
C# Generic 관련해서 찾아보시면 도움이 될겁니다.




