본문 바로가기
프로그래밍언어 & 프레임워크/C#

C# 네임스페이스(Namespace)

by 공부하는개미 2021. 6. 4.
반응형

 

 

 

아래 글은 C# 네임스페이스(namespace) 관련 개념 정리 및 작성자 공부를 위해 작성되었습니다.

 

 

 

📃 참고자료

 

  • C# 교과서(길벗 출판사) - 33단원 네임스페이스 452 ~ 459페이지
  • 유튜브 채널 VisualAcademy [C# 교과서 마스터하기 33. 네임스페이스]
  • 닷넷코리아 (https://www.dotnetkorea.com/)

 

 

 

 

 

https://www.youtube.com/watch?v=dRRSGy9Tad8 

 

 

 

✳ 네임스페이스(Namespace)

 

  • 클래스명의 중복 방지 <- 네임스페이스의 가장 큰 사용 이유
  • 클래스를 계층적으로 관리
  • 회사마다 회사명을 Top 네임스페이스로 구성

 

 

 

✳ System 네임스페이스

 

  • System.Console.WriteLine();
    - System 네임스페이스 안에 있는
     -> Console 이름의 클래스 안에 있는
      => WriteLine 이름의 메서드

 

 

✳ 이외 네임스페이스의 사용 이유 및 특성

 

  • 클래스 및 기타 형식(Type)을 구조화
  • 클래스 이름과 기타 형식의 이름이 충돌하지 않도록 방지
  • 표준 namespace는 대부분 System으로 시작
    - System, System.Text, System.Data ....

  • 사용 가이드라인
    - 대문자로 시작: 닷넷의 모든 API는 대문자로 시작
    - 회사명 또는 브랜드 사용

  • 필요하다면 복수형 이름도 상관 없음
    - System.Collections

  • 네임스페이스와 클래스 이름을 동일한 것으로 사용 금지
    - 낫넷 API 탐색기 적극 활용

 

 

 

 

✳ 예제코드

//[?] 네임스페이스: 클래스 등의 사용자 정의 형식의 이름 충돌 방지 및 관련 기능끼리 묶어서 관리
using System;

namespace Foo
{
    public class Car
    {
        public void Go() => Console.WriteLine("[1] Foo 네임스페이스의 Car 클래스 호출");
    }
}

namespace Bar
{
    public class Car
    {
        public void Go() => Console.WriteLine("[2] Bar 네임스페이스의 Car 클래스 호출");
    }
}

class NamespaceNote
{
    static void Main()
    {
        Foo.Car fooCar = new Foo.Car();
        fooCar.Go(); // [1] Foo 네임스페이스의 Car 클래스 호출
        Bar.Car barCar = new Bar.Car();
        barCar.Go(); // [2] Bar 네임스페이스의 Car 클래스 호출
    }
}
반응형

'프로그래밍언어 & 프레임워크 > C#' 카테고리의 다른 글

C# 메서드(Method)와 매개변수(Parameter)  (0) 2021.06.06
C# 소멸자(Destructor)  (0) 2021.06.05
C# 개체(Object) 만들기  (0) 2021.06.03
C# 널(Null)  (0) 2021.06.02
C# 컬렉션(Collection)  (0) 2021.06.01