-
Namespace
-
class와 각종 data type들을 그 연관성에 따라 그룹화시키는 논리적인 개념
-
Namespace를 중첩시켜 계층적인 data type을 구성
-
class의 이름 충돌을 해결하기 위한 용도로 사용
-
Namespace를 사용할 경우 이름이 길어지게 되는데, 이것을 해결하기 위해 Namespace Alias를 통해 Namespace의 별칭을 지정할 수 있다.
-
namespace에 포함될 수 있는 것
-
namespace, class, interface, struct, enum, delegate
-
-
-
Namespace의 범위
-
class는 그 class가 참조될 수 있는 범위를 가지고 있다.
-
namespace가 지정되지 않으면 같은 namespace에서 처리
-
using System; class Utility{ // 이 두개의 class는 default namespace에 속한다. public void DisplayString(){ Console.WriteLine("Hello")}; }
class Myclass{ public static void Main(){ Utility util = new Utility(); util.DisplayString();
System.Threading.Thread.Sleep(100000); // 다른 namespace class } } |
-
class 이름이 중복될 때
-
Application은 수많은 class들로 이루어지고, class의 이름이 중복되는 상황이 발생 할 수 있다.
-
namespace를 사용하지 않는다면, class의 이름을 서로 다르게 지정할 수 밖에 없다.
-
public class Project1Utility{ ............. }
public class Project2Utility{ ............. }
// 복잡한 이름으로 사용이 불편 |
namespace MyCompany.Project1{ public class Utility{ } }
namespace MyCompany.Project2{ public class Utility{ } } |
-
단일 Namespace의 선언 및 사용
namespace Project1{ public class Utility{ public void DisplayString(string srt) { ........ } ; } } |
using Project1; namespace Project2{ public class MyClass{ public static void Main(){ Utility util1 = new Utility(); // using 키워드를 사용한 참조 Project1.Utility util2 = new Project1.Utility(); util1.DisplayString("Hello World~!"); } } } |
-
중첩된 Namespace의 선언
namespace MyCompany namespace Project1{ public class Utility{ } } } → namespace MyCompony namespace Project2{ public class Utility{ } } } |
namespace MyCompany.Project1{ public class Utility{ } }
namespace MyCompany.Project2{ public class Utility{ } }
|
- Namespace의 사용과 Alias
using MyCompany.Project1;
// .... Utility util1 = new Utility(); // using 키워드를 사용한 참조 |
MyCompany.Project1.Utility util2 = new MyCompony.Project1.Utility(); System.Threading.Thread.Sleep(100000); |
using A1 = MyCompany.Project1; // namespace alias 정의
// .... A1.Utility util2 = new A1.Utility(); // namespace alias 사용 |
[첨부 파일 : 소스 파일]
출처 : (주)인터데브 솔루션 개발 사업부 박준호님의 C# 동영상 강좌
'프로그램&DB > C#' 카테고리의 다른 글
박준호님의 C# 강좌 - Delegate (0) | 2009.04.14 |
---|---|
박준호님의 C# 강좌 - Collection / ArrayList / HashTable (0) | 2009.04.14 |
[C# 강좌] C# 프로그래밍 #10- 구조체 (0) | 2009.04.08 |
[C# 강좌] C# 프로그래밍 #09- 상속 (0) | 2009.04.08 |
[C# 강좌] C# 프로그래밍 #08- 클래스 (0) | 2009.04.08 |