C# 1. namespace, partial, using
Jan. 21, 2022, 11:39 p.m.
1. namespace란?
namespace는 C#에서 코드를 담아 놓는 공간이라고 생각하면 편합니다. C# 프로그램을 만들 때 namespace를 만들고, 그 안에 클래스와 각종 메소드를 선언하죠.
기본적으로 이렇게 선언됩니다.
namespace hello {
}
hello라는 namespace를 선언했습니다.
네임스페이스 안에 있는 클래스들은 서로를 '볼 수' 있습니다. 서로 다른 파일에 존재하고 있어도 말이죠.
예를 들어서 아래와 같이 구성한 상황에서,
-file1.cs-
namespace hello
{
public class Apple {
public void Bite() {
}
}
}
-file2.cs-
namespace hello
{
public class Banana {
public void Eat(Apple apple) {
apple.Bite();
}
}
}
file1.cs에 선언된 Apple 클래스에 있는 Bite 메소드는 file2에서 사용할 수 있습니다. 같은 namespace에 있기 때문에 가능한 일입니다.
2. partial 키워드로 클래스 나누어서 선언
파일이 몇 개인지 상관없이 같은 namespace에 있다면 사용할 수 있습니다.
이를 이용해 필요하다면 여러개의 파일에 나누어 클래스를 선언할 수 있습니다. 바로 'partial' 키워드를 사용해서 말이죠.
-file1.cs-
namespace hello
{
public partial class Apple {
public void Bite() {
}
}
}
-file2.cs-
namespace hello
{
public partial class Apple {
public void Throw() {
}
}
}
서로 다른 파일에 같은 Apple 클래스를 partial 키워드를 이용해 나누어서 선언했습니다.
3. using을 이용해 namespace 사용하기
.net 프레임워크를 사용하는 C#은 에디터에서 파일을 생성하기만 해도 위쪽에 using 키워드가 사용되어 있는 모습을 볼 수 있습니다. 이는 그 파일에서 .net 프레임워크에서 제공하는 코드를 사용하기 위해 그 코드가 담겨있는 namespace를 using 키워드를 통해 그 namespace를 사용하겠다고 선언하는 것입니다.
using System;
using System.Windows.Forms;
using hello;
위와 같이 불러올 수 있습니다.
하지만 꼭 using을 써야지만 다른 namespace에 있는 코드를 쓸 수 있는 것은 아닙니다. 귀찮지만 namespace를 직접 쓰는 방법도 있습니다. 예를 들어 System.Windows.Forms.DialogResult namespace에 있는 MessageBox.Show() 메소드를 사용하고 싶을 때 두 가지 방법이 있는 것입니다.
using System.Windows.Forms.DialogResult;
MessageBox.Show("hi");
System.Windows.Forms.DialogResult.MessageBox.Show("hi");
사실 두번째 방법으로 사용하는 경우는 거의 없으리라 생각됩니다.
오늘은 C#에서 namespace가 무엇인지, 그리고 partial 키워드로 클래스를 나누어서 선언하는 것, 그리고 using 키워드로 namespace를 사용한다고 선언하는 것을 알아보았습니다.
namespace partial using