개발 언어/C,C++,C#

[C#] namespace 네임스페이스 / using

삐뚤어진 개발자 2019. 9. 3.

1. namespace

c#에는 namespace 라는 구문이 있다. 어떨때 필요하냐?

 

예를들어 규모가 큰 프로젝트에서 개발팀 A,B,C가 파트를 나누어서 개발을 하고 

프로젝트를 합칠때, 같은 변수명, 함수명을 만들었다면, 중복으로 에러가 날 것이다.

 

이럴때, 필요하다.

 

예시)

// A팀의 namespace
namespace A {
    string people;
    
    void eat() {
        printf("A팀의 eat() 호출!\n");
    }
}

// B팀의 namespace
namespace B {
	string people;
    
    void eat() {
        printf("B의 eat() 호출!\n");
    }
}
 
int main()
{
    A::people = "A팀개발자";
    A::eat(); //A팀의 메서드
    
    B::people = "B팀개발자"; 
    B::eat(); //B팀의 메서드
   
    
    return 0;
}

- namespace A { } 로 묶어 주고 , 중괄호 안의 변수 people 과 메소드 eat()은 A::people A::eat()으로 호출하였다.

 

2. using

 using은 namespace를 사용하기 간편하게 해줍니다. 

 

예시)

namespace A {
    string people;
    
    void eat() {
        printf("A팀의 eat() 호출!\n");
    }
}

using namespace A;

int main()
{
    people = "A팀개발자";
    eat(); 
   
    return 0;
}

- using namespace A를 선언해주면, 변수 people 나 메소드 eat() 앞에 A::를 붙이지 않아도 됩니다.

 

 

namespace A {
    string people;
    
    void eat() {
        printf("A팀의 eat() 호출!\n");
    }
}

using A::people;

int main()
{
    people = "A팀개발자";
    A::eat(); 
   
    return 0;
}

- 마찬가지로 namespace 안의 각 변수와 메소드를 지정해 줄 수 있습니다.

 

 

 

reference : https://leehosung3576.tistory.com/20

댓글