호빵의 IT 개발소

[C/C#] namespace, partial 본문

CS(전공지식)/프로그래밍언어

[C/C#] namespace, partial

호빵Stack 2022. 6. 20. 01:36

namespace

  • namespace를 2개로 나누어 class를 생성하면 class가 같은 이름을 가지고 있어도 생성이 가능합니다.
  • 각각 namespace를 유니크로 지정해 놓으면 다른 라이브러리와 클래스 이름이 충돌할 일이 줄어들게 됩니다.
  • 협업, 대형 프로젝트, 외부 라이브러리 등 클래스 이름이 겹칠 경우 명시적으로 사용 가능
namespace Hello1
{
    class Test
    {
    	public void Print()
        {
            Console.WriteLine("Hello One");
        }
    }
}

namespace Hello2
{
    class Test
    {
    	public void Print()
        {
            Console.WriteLine("Hello Two");
        }
    }
}

namespace Console
{
    class Program
    {
    	static void Main(string[] args)
        {
            var hello1 = new Hello1.Test();
            hello1.Print(); // 콘솔창에 Hello One 출력
            
            var hello2 = new Hello2.Test();
            hello2.Print(); // 콘솔창에 Hello Two 출력
        }
    }
}

 

 

partial

  • 클래스를 여러 파일에 정의
  • 클래스의 내용을 다른 파일로 분할할 수 있지만 논리적으로는 하나(응용 프로그램이 컴파일 될 때 분할된 파일이 결합)
  • 클래스를 여러 파일로 분할하려면 partial을 사용하여 partial Calss로 정의
partial class Animal
{
    // 변수
    public int speed;
    public string animal_name; 
}

partial class Animal
{
   // 생성자
    public TestPartial(int _speed, string _name)
    {
    	speed=_speed;
        animal_name = _name;
    }
}

prtial class Animal
{
    // 함수
    public void AnimalInfo()
    {
    	Console.WriteLine("speed : {0}, name : {1}", speed, animal_name);
    }
}

 

 

 

 

참조 및 출처 : https://nowonbun.tistory.com/129

                       https://developer-talk.tistory.com/472

Comments