cyphen156

C#에서 클래스와 namespace(C++와 다른점 2) 본문

프로그래밍/C#

C#에서 클래스와 namespace(C++와 다른점 2)

cyphen156 2023. 11. 29. 10:55

C++의 namespace와 C#의 네임스페이스 설명에 대해서 거의 비슷하게 되어 있어서 둘이 같은 역할을 하는 것 인줄 알았는데 아니었다.

 

C++에서의 namespace는 cpp파일 또는 헤더 파일 내에서 정의된 여러 변수들, 메서드 등의 중복만을 방지하기 위한 정의였다면, C#에서의 namespace는 이 기능을 넘어선 패키징의 개념이 포함되어있었다. 그렇기 때문에 C/C++에서의 #include, 자바나 자바스크립트에서 제공하는 import라는 작업 대신 using 'namespace'를 통해 사용할 클래스 파일을 '불러오고', 변수나 메서드의 중복 또한 방지해준다. 

조금 더 나아가자면 import문에서는 파일 경로를 찾아 해당 파일을 참조할 수 있는 기능이라면, using은 같은 폴더 내부의 cs파일이라면 using문을 이용해 포함시킬 수 있는 것이다. 그럼 작성한 코드를 기능별로 파편화 해서 여러개의 폴더로 쪼개어 관리하고 싶으면 어떻게 해야할까..?

메인 메서드가 포함된 cs파일이 아닌 프로젝트 솔루션 파일( .csproj)이 해당 네임스페이스가 포함된 폴더 경로를 알고있으면 해결된다.

한 폴더내부에 참조되는 모든 파일이 존재

React-Native에서의 App.js에 해당하는 전체 프로젝트를 관리하는 메인 파일이라고 볼 수 있는 것이다.

졸작때 만들엇던 teamony 앱의 app.js

또 다른 방법이 있다 IDE (Visual Studio)를 사용하면 된다. 비주얼 스튜디오에서는 .NET프로젝트에 대해 하나의 프로젝트 솔루션(최상위 폴더 : FirstApp)안에 있는  cs파일이라면 자동으로 추적하여 namespace 파일을 찾아서 using문에 포함시킬 수 있도록 개발되어있기 때문에 개발자는 이런 파일 경로를 RN처럼 경로를 지정할 필요가 없이 그냥 using문으로 포함시키기만 하면 된다.

이렇게 폴더만들고 넣어놔도 알아서 필요한 파일을 찾는다.

 

'프로그래밍 > C#' 카테고리의 다른 글

C# 버전별 핵심 기능 (1.0 ~ 7.0)  (0) 2023.12.01
C# 실습 1 .NET 8 Winforms 앱 만들기  (0) 2023.11.30
C# 기초2 C/C++와 다른점  (2) 2023.11.28
C# 기초1  (0) 2023.11.28