본문 바로가기
C#(CSharp)/기초강좌(Basic)

[20] C# 네임스페이스 (C# Namespace)

by swconsulting 2015. 2. 23.

C#에서 namespace는 java에서 package와 동일한 개념입니다.

Namespace는 class들의 모음으로 생각하면 됩니다. 


아래 3가지 코드 예제를 보면서 이해하도록 해보겠습니다.


1)Namespace 선언 (Defining a Namespace)


using System;
namespace first_space
{
   class namespace_cl
   {
      public void func()
      {
         Console.WriteLine("Inside first_space");
      }
   }
}
namespace second_space
{
   class namespace_cl
   {
      public void func()
      {
         Console.WriteLine("Inside second_space");
      }
   }
}   
class TestClass
{
   static void Main(string[] args)
   {
      first_space.namespace_cl fc = new first_space.namespace_cl();
      second_space.namespace_cl sc = new second_space.namespace_cl();
      fc.func();
      sc.func();
      Console.ReadKey();
   }
}
Inside first_space
Inside second_space


위 코드에서 2개의 네임 스페이스를 선언한 후 각각 네임 스페이스에 있는 namespace_cl를 선언해서 사용 할 수있습니다.

하지만 위와 같이 사용하면 코드가 길어져서 가독성이 떨어 집니다. 그래서 Using 키워드를 사용합니다.


2) Using 키워드 사용 (Using Keyword)

using System;
using first_space;
using second_space;

namespace first_space
{
   class abc
   {
      public void func()
      {
         Console.WriteLine("Inside first_space");
      }
   }
}
namespace second_space
{
   class efg
   {
      public void func()
      {
         Console.WriteLine("Inside second_space");
      }
   }
}   
class TestClass
{
   static void Main(string[] args)
   {
      abc fc = new abc();
      efg sc = new efg();
      fc.func();
      sc.func();
      Console.ReadKey();
   }
}
Inside first_space
Inside second_space


코드 맨 위에 아래 처럼 2개의 Using으로 각각 네임 스페이스를 사용하도록 했습니다.


using first_space;

using second_space;


위와 같이 using 키워드를 사용했기 때문에 아래 처럼 코드가 간결해 집니다.


      abc fc = new abc();

      efg sc = new efg();

      fc.func();

      sc.func();


만약 using을 사용 하지 않는다면, 


      first_space.abc fc = new first_space.abc();

      second_space.efg sc = new second_space.efg();

      fc.func();

      sc.func();


위에 코드 처럼 길어집니다.


이상으로 [1] ~ [20]개로 C# 기본강좌(Basic lecture)를 마무리 하고 다음 블로그 글은 좀더 난이도가 있는 고급 주제로 글을 작성하겠습니다.


참고 : http://www.tutorialspoint.com/csharp/index.htm