2016. 12. 12. 15:19

안녕하세요. 게임 개발자 놀이터입니다.


이번 포스팅에선 C#에서 C++에서 비교적 자주 쓰이는 (저는 편해서 자주 쓰는..) typedef를 C#에서 사용하는 방법입니다.


최근 C#을 사용하면서 비교적 KeyValuePair를 되게 자주 사용하게 됬습니다.


특정 2개의 값을 묶어서 관리하기 위해서였죠. 근데 KeyValuePair가 많아지면 어느게 어떤건지 변수명만으로 구분하기가 애매해 질때가 있었습니다.


그때 생각난게 C++의 typedef 였죠.


이름을 바꿔주면 편하지않을까..


생각하면서 typedef를 입력해봤으나 역시나 안됬습니다.


다른 방법이 없을까 찾아보면서 MSDN에 들어가게 됬습니다 (링크)


링크에 적힌 원문을 그대로 가져오면


typedef 키워드입니다. C++에서 typedef는 짧게 만들어지거나 이미 선언된 형식에서 좀 더 편리한 이름으로 사용됩니다. C#의 경우 using 지시문이 이 기능을 제공합니다.


라고 합니다.


그럼 예제 코드를 볼까요.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
namespace Silisia
{
    using indexValuePair = KeyValuePair<intint>;
    public class ExampleClass
    {
        void test()
        {
 
            KeyValuePair<intint> Pair = new indexValuePair();
 
            indexValuePair Pairs = new indexValuePair();
        }
    }
}
cs


위 처럼 사용할수 있습니다.


무조껀 클래스 상단에 위치해야 합니다. 그렇지 않으면 에러를 뽑아내게 됩니다.


물론 최상단에 적어야 하는게 맞겠지만.. C언어가 생각나네요..


몇번 사용하다가 결국엔 새로 클래스를 만들어 사용했습니다.


그래도 참고가 될까 이곳에 글을 남깁니다.


감사합니다.


------------------------------


추가


C++도 템플릿 에일리어스(C++11)로 using 키워드를 사용할 수 있습니다.

기존 typedef 해석 방법은 구식(C와 호환)이라 템플릿 사용 시 문제가 있어서 C 코드와 호환이 필요하지 않다면 typedef 대신 using을 쓰는 걸 권장한다고합니다.


라고합니다. (링크로 남긴 페북을 통해 답글 중.)




Posted by 시리시안