프로그래밍을 할 때, 가장 큰 어려움은 겪는 것이 클래스 이름, 함수 이름, 메서드 이름, 변수 이름을 정하는 것입니다.
그리고 프로젝트의 규모가 크면 커질수록 각종 이름들의 충돌 발생 가능성이 점점 커지게 됩니다.
이 문제점을 해결해 주는 방법이 네임스페이스입니다.
네임스페이스는 클래스들의 묶음입니다.
반대로 클래스들은 네임스페이스를 이용하여 분류를 할 수 있습니다.
1. 네임스페이스 선언
네임스페이스 선언은 클래스 앞에 "namesapce 네임스페이스명" 선언 후 {}로 묶으면 됩니다.
사용 방법 : 네임스페이스 |
namespace 네임스페이스-이름 { class A { } class B { } .... } |
네임스페이스는 중첩을 허용합니다.
중첩 방법은 첫번째는 네임스페이스를 중첩 선언하는 방법입니다.
네임스페이스 중첩1 |
namesapce 네임스페이스-이름-1 { namesapce 네임스페이스-이름-2 { class A { } class B { } .... } } |
두 번째 방법은 . 키워드를 사용하는 방법입니다.
네임스페이스 중첩2 |
namesapce 네임스페이스-이름-1.네임스프이스-이름-2 { class A { } class B { } .... } |
2. 네임스페이스 참조
네임스페이스를 사용하기 위해서는 다음 2 가지 방식으로 사용됩니다.
2. 1 전체 네임스페이스를 다 적어주는 방식.
예제 : 전체 네임스페이스를 다 적어주는 방식 |
UnityEngine.Debug.Log("네임스페이스 1"); |
2. 2 using 지시문을 사용.
using 지시문은 선언문에 using 지시문을 선언해줍니다.
using 지시문 |
using UnityEngine; public class NamespacesExample : MonoBehaviour { void Start() { Debug.Log("네임스페이스 1"); } } |
3. 예제
네임스페이스 선언
using UnityEngine;
namespace Namespace1
{
public class NamespaceDefinitionExample
{
public static void DebugLog(string message)
{
Debug.Log(message);
}
}
}
네임스페이스 사용
using UnityEngine;
using Namespace1;
public class NamespaceUsageExample : MonoBehaviour
{
void Start()
{
NamespaceDefinitionExample.DebugLog("네임스페이스");
}
}
4. using 문
C#에서 using 키워드는 using 지시문, using 별칭 지시문, using문으로 사용됩니다.
4.1 using 지시문
지시문에 using 지시문은 네임스페이스 형식 사용 허용에서 사용됩니다.
예제 : using 지시문, 네임스페이스 |
using UnityEngine; |
4.2 using 별명 지시문
네임스페이스 또는 형식의 별명을 만드는 데 사용됩니다.
using 지시문을 사용하다 보면, 메서드명이 겹치는 경우가 발생합니다.
이때 using 별명 지시문을 사용하여, 어떤 메서드를 사용할지를 정해 줄 수 있습니다.
아래 예는 Debug라는 메서드가 겹쳐서 using 별명 지시문을 사용합니다.
using UnityEngine;
using System.Diagnostics;
using Debug = UnityEngine.Debug;
public class UsingAliasDirectiveExample : MonoBehaviour
{
void Start()
{
Debug.Log("UsingAliasDirective");
}
}
하지만, 지시문에 using 별명 지시문을 선언해주면, Debug는 UnityEngine.Debug가 사용됩니다.
4.3 using 문
using 문은 객체의 범위를 정의할 때 사용됩니다.
이렇게 정의된 객체는 using 문 블록을 벗어나게 되면 자동적으로 Dispose 됩니다.
Dispose는 메모리를 반납하는 메서드로 리소드를 정리해 줍니다.
File이나 Database, www 등 관리하기 힘든 리소스들의 관리를 해 줍니다.
using System.Collections;
using UnityEngine;
public class UsingStatementExample : MonoBehaviour
{
public string url = "http://images.earthcam.com/ec_metros/ourcams/fridays.jpg";
IEnumerator Start()
{
using (WWW www = new WWW(url))
{
yield return www;
Renderer renderer = GetComponent<Renderer >();
renderer.material.mainTexture = www.texture;
}
}
}
'프로그램 > 유니티 C# 강좌' 카테고리의 다른 글
[유니티 C# 강좌] 14. 구조체(Struct) (0) | 2020.01.29 |
---|---|
[유니티 C# 강좌] 13. 클래스(Class) (2) | 2020.01.29 |
[유니티 C# 강좌] 11. 예외 처리(Exception handling) (0) | 2019.11.25 |
[유니티 C# 강좌] 10. 점프문(Jump Statement) (0) | 2019.11.24 |
[유니티 C# 강좌] 9. 반복문(Repetitive Statement) (1) | 2019.11.24 |