[시작에 앞서]
using 키워드 아마 다들 많이 사용해 보셨을 것입니다. using [네임스페이스]; 이렇게 말이죠. 허나 혹시 using [type]{} 용법을 아시는 분이 있으신지요? 제 책에도 안나와있고, 결국 MSDN 검색해서 알아냈답니다.
이미 대부분의 사람들이 다 아시는 내용일 것이고, 간단한 내용이므로 설명보다는 코드위주로 진행을 하겠습니다.
[using [네임스페이스];용법]
기본적으로 자주보는 용법입니다. 코드는 다음과 같습니다.
static void Main()
{
System.Console.WriteLine("Now outside using statement.");
}
// 라는 문장을 using System; 을 선언함으로서 이후에 오는 내용에 맨앞의 네임스페이스 System.
// 를 뺄 수 있습니다.
using System;
static void Main()
{
Console.WriteLine("Now outside using statement.");
}
[using (타입){} 용법]
닷넷 프레임워크 할당된 메모리를 해제시에는 CLR(common language runtime)이 명시적이지 않는 해제를 해줍니다. 쉽게 말해 코드상에서 명시를 하지 않기 때문에, 언제 어느때 해제할 것인지는 CLR 마음이라는 것이죠. 그러나 파일핸들이나 네트워크 커넥션의 같은경우는 그때 그때 해제하는 것이 바람직합니다. 물론 그럴경우에는 .Dispose()라는 함수를 직접호출 할수도 있겠지만 소스가 길어지고, 복잡해지면 이러한 함수를 호출하는 것을 깜빡잊고 못쓰는 경우도 생깁니다. C에서의 포인터가 어렵다는 것도 바로 그 때문입니다. 설명은 주석과 함께 하겠습니다.
using System;
// using 키워드를 사용하려면 IDisposable 인터페이스를 상속 받아야 하고, 또 Dispose()를 오버라이딩 해야합니다.
class C : IDisposable
{
public void UseLimitedResource()
{
Console.WriteLine("Using limited resource...");
}
void IDisposable.Dispose()
{
Console.WriteLine("Disposing limited resource.");
}
}
class Program
{
static void Main()
{
// 아래의 using의 괄호영역( {} ) 을 벗어나면 자동으로 Dispose() 함수가 호출됩니다.
using (C c = new C())
{
c.UseLimitedResource();
}
Console.WriteLine("Now outside using statement.");
Console.ReadLine();
}
}





