C++에서 템플릿 클래스를 사용하듯이 C#에서도 지네릭 클래스라는 것이 있다.
문제는 지네릭 클래스가 C++의 템플릿 클래스와는 다르다는데 있다.
컨테이너를 만들 때 보통 템플릿을 사용하듯이 C#에서도 지네릭 클래스를 사용한다. 가령
List<int>
List<float>
와 같이 말이다.
혹은 Vector클래스를 만들 때도 지네릭화 할 수 있다.
가령
Vector<int>
Vector<float>
와 같이 쓸 수 있으면 얼마나 좋겠나? C#에서는 안타깝게도 이를 구현하기가 어렵다.
가능은 하다. 다음 문서를 읽어 보자.
http://geekswithblogs.net/Mathoms/archive/2008/08/26/applied-generics--vector-class.aspx
http://www.codeproject.com/Articles/10780/Operator-Overloading-with-Generics
읽고 나서 나는 Vector2DInt, Vector2DFloat를 따로 만들어서 썼다.
차라리 Copy and Paste가 훨씬 쉽고 나중에 C#에서 제대로 지원할 때 지네릭을 사용하는 편이 낫겠다.
No comments:
Post a Comment