[C#] :: 연산자로 동일한 이름의 구성원에 접근

using 및 =를 사용하면 네임스페이스를 별칭(alias) 할 수 있습니다.

using forwinforms = System.Drawing;
using forwpf = System.Windows;

위의 두 네임스페이스에 Point라는 구조체가 있다고 가정할 때 이렇게 접근할 수 있습니다.

forwinforms.Point, forwpf.Point

그런데 .은 구성원에서의 접근도 되므로 다음과 같이 별칭 한정자(::)를 이용하면 네임스페이스의 접근임을 좀 더 명확하게 할 수 있습니다.

forwinforms::Point, forwpf::Point

using forwinforms = System.Drawing;
using forwpf = System.Windows;

public class Converters
{
    public static forwpf::Point Convert(forwinforms::Point point) => new forwpf::Point(point.X, point.Y);
}

그렇다면 별칭 네임스페이스가 아닌 접근은 별칭 한정자로 어떻게 접근할 수 있을까요? 맨 앞에 global::로 접근하면 별칭이 아닌 네임스페이스로 인식 합니다.

global::System.Console.WriteLine("Hello World!");

4개의 좋아요