정의
내부 식별자(형식, 함수, 변수 등의 이름)에 범위를 제공하는 선언적 영역
의의
네임스페이스를 통해 코드를 논리 그룹으로 구분이 가능합니다. 또한, 프로그램을 구성하는 코드에 여러 라이브러리가 포함된 경우에 발생할 수 있는 이름 충돌을 방지할 수 있습니다.
기능
다음은 네임스페이스의 기본 선언 형식입니다.
namespace NamespaceName
{
class ClassName
{
public:
void Func1() {}
}
// void Func2() {}
}
네임스페이스에 선언된 클래스 및 해당 클래스 멤버는 외부에 선언된 것과 같은 이름을 가질 수 있습니다. 네임스페이스에 직접 포함될 수 있는 멤버는 클래스 뿐입니다. 필드나 메서드 같은 멤버는 클래스 내부에 선언된 채 소속되는 방식으로 네임스페이스에 간접 포함합니다.
다음은 외부에서 네임스페이스의 멤버에 접근하는 형식입니다.
NamespaceName.ClassName obj;
obj.Func1();
using 선언을 통해 외부에 선언된 네임스페이스의 식별자를 생략할 수 있습니다. 단, 중복된 이름을 갖는 클래스가 존재하면 식별자를 통해 어떤 클래스에 접근하는지 명시해야 합니다.
using NamespaceName;
ClassName obj;
obj.Func1();
사용 예시
Monster.cs
namespace Resources
{
public class Monster
{
public string m_Name;
public int m_Attack;
public void PrintInfo() { Debug.Log($"이름({m_Name}) : 공격력({m_Attack})"); }
}
}
Main.cs
public class Monster
{
public string m_Name;
public float m_Star;
public void PrintInfo() { Debug.Log($"이름({m_Name}) : 성급({m_Star})"); }
}
namespace Resources
{
public class Item
{
public string m_Name;
public int m_Price;
public void PrintInfo() { Debug.Log($"이름({m_Name}) : 가격({m_Price})"); }
}
}
// 예) 몬스터 및 아이템 정보 저장 및 출력
public class Main
{
void Start()
{
// 내부 클래스 접근
Monster A = new Monster();
A.m_Name = "바람 드래곤";
A.m_Star = 3;
A.PrintInfo();
// 네임스페이스 접근 - 식별자
MyTeam.Monster B = new MyTeam.Monster();
B.m_Name = "얼음 고블린";
B.m_Attack = 20;
B.PrintInfo();
// 네임스페이스 접근 - 식별자 생략
Item C = new Item();
C.m_Name = "화염의 검";
C.m_Price = 1500;
C.PrintInfo();
}
}
/*
이름(바람 드래곤) : 성급(3)
이름(얼음 고블린) : 공격력(20)
이름(화염의 검) : 가격(1500)
*/
네임스페이스 (C++)
자세한 정보: 네임스페이스(C++)
learn.microsoft.com
'📘프로그래밍 > C#' 카테고리의 다른 글
[C#] 13 List (3) | 2024.11.16 |
---|---|
[C#] 11 정적 멤버 (1) | 2024.11.02 |
[C#] 10 REF / OUT (1) | 2024.11.01 |
[C#] 09 생성자 / 소멸자 (2) | 2024.10.31 |
[C#] 08 클래스 (1) | 2024.10.30 |