— 사용자 정의 클래스도 [] Index접근 할 수있나?
Dictionary가 포함된 클래스는 해당 Dictionary에 접근하려면 클래스를 통해 Get,Set함수를 만들어서 호출하거나 Public된 DIc에 접근해야 했다.
[Serializable]
public class Class1
{
public Dictionary<string, int> m_dic;
public int GetDic(string _key)
{
return m_dic[_key] ;
}
}
기존 컬렉션들 List, Dictionary, array처럼 우리가 정의한 클래스도 Index로 접근할 수 있을까??
— C#의 Indexers 기능 사용하기
다행히 만능 C#에는 해당 기능 지원해준다.
[Serializable]
public class Class1
{
public Dictionary<string, int> m_dic;
public int this(string _key)
{
return m_dic[_key] ;
}
}
요런식으로 this키워드를 사용해 바로 접근이 가능
Class1 _myClass1 = new Class1();
int _integer = _myClass1["키값"];
잘 활용하면 좀 더 직관적이고 깔끔하게 코드를 짤 수 있다
실제로 클래스네이밍만 명확하다면 외부접근할 때 유용할듯
참고.
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/indexers/using-indexers