C#교과서 마스터하기 22. 네임스페이스(namespace)

min seung moon·2021년 7월 13일
0

C#

목록 보기
23/54

https://www.youtube.com/watch?v=dRRSGy9Tad8&list=PLO56HZSjrPTB4NxAsEP8HRk6YKBDLbp7m&index=54

1. 네임스페이스(namespace)

01. 네임스페이스

  • 클래스명의 중복 방지
  • 클래스를 계층적으로 관리
  • 회사마다 회사명을 Top 네임스페이스로 구성
  • 클래스 및 기타 형식(Type)을 구조화
  • 클래스 이름과 기타 형식의 이름이 충돌하지 않도록 방지
  • 표준 namespace는 대부분 System으로 시작
    • System, System.Text, System.Data, ...
  • 사용자 가이드라인
    • 대문자로 시작, 닷넷의 모든 API는 대문자로 시작
    • 회사명 또는 브랜드 사용
      • Microsoft
      • Hawaso.Standard
      • Dul
    • 필요하다면, 복수형 이름도 상관 없음
      • System.Collections
    • 네임스페이스와 클래스 이름을 동일한 것으로 사용 금지
      • 닷넷 API 탐색기 적극 활용

02. System 네임스페이스

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

03. Microsoft 네임스페이스

04. 네임스페이스(.NET Framework)

05. 네임스페이스(Base Framework)

06. 네임스페이스(Data & XML)

07. 네임스페이스(Web Forms)

08. 네임스페이스(Windows Forms)

2. 네임스페이스 구성

  • 기본 형태
class Program
{   
    static void Main(string[] args)
    {
            
    }

}
  • 네임스페이스
    • 사용 권장
namespace testProject
{
    class Program
    {

        static void Main(string[] args)
        {
            
        }

    }
}
  • 네임스페이스를 활용하여 동일한 클래스 생성
using System;
using static System.Console;
using System.Collections;
using System.Collections.Generic;
using System.Linq;


namespace Foo
{
    public class Car
    {
        public void Go() => WriteLine("Foo.Car 자동차");
    }
}

namespace Bar
{
    public class Car
    {
        public void Go() => WriteLine("Bar.Car 자동차");
    }
}

namespace testProject
{
    class Program
    {

        static void Main(string[] args)
        {
            Foo.Car fooCar = new Foo.Car();
            fooCar.Go();

            Bar.Car barCar = new Bar.Car();
            barCar.Go();
        }

    }
}

  • cs 파일로 구분해서 사용
    • 클래스 위에서 ctrl + .를 눌러서 파일 생성
  • Foo.Car.cs
using static System.Console;


namespace Foo
{
    public class Car
    {
        public void Go() => WriteLine("Foo.Car 자동차");
    }
}
  • Bar.Car.cs
using static System.Console;

namespace Bar
{
    public class Car
    {
        public void Go() => WriteLine("Bar.Car 자동차");
    }
}
  • Main file Program.cs
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;

namespace testProject
{
    class Program
    {

        static void Main(string[] args)
        {
            Foo.Car fooCar = new Foo.Car();
            fooCar.Go();

            Bar.Car barCar = new Bar.Car();
            barCar.Go();
        }

    }
}

profile
아직까지는 코린이!

0개의 댓글