본문 바로가기

프로그래밍&IT/C#

using : namespace 선언 외 다른 활용

using에 대해서 다시 체크

요즘 다시금 프로그래머로 살아야 할것(?)같네요.

이번에 c#.net을 공부하면서


using 의 다른 활용을 보게 되었습니다.


즉, 가장 많이 쓰이는

c#.net에서 제공하는 System namespace 이나 개발자가 만든 namespace 호출 등의 활용 외

(System.Data / System.Windows.Forms 등 등, C/C++ 에서 쓰이는 #include같은, 자바에선 import) 


Ex)




프로그래밍 문장 중간에서도 쓰이는 걸 다시금 인식했네요...

이래저래 학습 및 자료찾아보다가


네이버 선생에서 검색해서 확인했습니다. (물론 습득했다는건 아니고...)

----------------


▶ C#에서 using 의 용도는?


using 지시어는 두 가지 용도로 사용됩니다.


1.  네임스페이스(namespace)에 있는 타입을 사용할 수 있도록 허용합니다.

그래서 네임스페이스에 있는 타입을 이용하는데 있어 제한을 가하지 않습니다. 


using System.Text; <- 위에서 얘기했고 가장 많이 쓰일


2. 네임스페이스나 타입에 대한 별칭을 만들 수 있습니다.

using Project = PC.MyCompany.Project;


3. 또한 using 키워드는 using 구문(using statement)을 만드는데 사용됩니다.

이 using 구문은, 

파일과 폰트 등과 같이 자원(Resource)을 다루며, IDisposable 인터페이스를 구현한 객체가 올바르게 조작됨을 보장합니다.

using (GraphicsPath path = new GraphicsPath() ) { ... }


- 그리고 추가로 설명된 내용 -


▶ C#에서 namespace 란 무엇일까요?


namespace 라는 키워드는 범위를 선언하기 위해 사용됩니다.

namespace 에 포함된 범위 안에서 코드를 조직할 수 있으며, C(++) 언어에서 전역 변수와 같이 유일한 타입을 만들 수 있습니다


네임스페이스는 두 가지 범주로 나뉩니다.

사용자 정의 네임스페이스 시스템 정의 네임스페이스입니다.


사용자 정의 네임스페이스는 여러분이 직접 코드에서 정의한 네임스페이스입니다.

예를 들어 보죠.


namespace MYNAME

{

    // 여러분에게 필요한 코드나 타입을 정의할 수 있습니다.

    clase MyClass

    {

        //MyClass 클래스 타입을 정의합니다.

    }

}


이렇게 여러분이 직접 정의해서 만든 네임스페이스가 사용자 정의 네임스페이스입니다.


시스템 정의 네임스페이스는 .NET 프레임워크 클래스 라이브러리 참조를 찾아보시면 됩니다.


[그림 1] 은 Viusal Studio 2005 개체 브라우저를 통해 .NET 클래스 라이브러리 구성 요소를 살펴본 것입니다.


[그림 1] .NET 프레임워크 클래스 라이브러리


다음 코드에서 보면 using 키워드를 이용해서 시스템 네임스페이스를 이용한다고 선언한 것을 알 수 있습니다.


네임스페이스를 편하게 사용하려면, using 키워드를 이용하면 됩니다.


using System;

using System.Collections.Generic;

using System.Text;


namespace usingAndnamespace

{

        class Program

        {

                static void Main(string[] args)

                { 

System.Console.WriteLine("HELLO?");

          Console.WriteLine("HELLO?");                   

                }

        }

}


즉, 다음처럼 두 가지 코드도 허용되지만 두 번째 문장이 간결하고 타이핑도 덜 치고 낫습니다.

① System.Console.WriteLine("HELLO?");

② Console.WriteLine("HELLO?");


두 번째 문장처럼 하려면,

using System;


당연히, using 키워드를 이용해서 사용하고자 하는 클래스를 포함하는 네임스페이스를 지정해줘야 합니다.


-----------------------


추가적으로 namespace에대해서도 다시 체크해봤지만

아직도 잘 모르겠네...