다음은 내가 잠시 동안 가지고 있었던 질문이지만 실제로 묻지는 않았습니다 ....Net 디자이너 파일에서 global :: mean은 무엇을 의미합니까?
Visual Studio에서 생성 된 상당수의 디자이너 파일 중 일부는 global : Can 어떤 사람이 이것이 무엇을 의미하는지,이 접두어가 무엇을하는지 그리고 내가 그것을 어디에 사용해야하는지 설명합니다.
다음은 내가 잠시 동안 가지고 있었던 질문이지만 실제로 묻지는 않았습니다 ....Net 디자이너 파일에서 global :: mean은 무엇을 의미합니까?
Visual Studio에서 생성 된 상당수의 디자이너 파일 중 일부는 global : Can 어떤 사람이 이것이 무엇을 의미하는지,이 접두어가 무엇을하는지 그리고 내가 그것을 어디에 사용해야하는지 설명합니다.
글로벌 네임 스페이스 한정자를 사용하면 전역 ("빈") 네임 스페이스의 멤버에 액세스 할 수 있습니다.
MyNamespace.MyClass.DoSomething()이 아닌 MyClass.DoSomething()과 같이 한정되지 않은 유형을 호출하는 경우 현재 네임 스페이스에 있다고 가정합니다. 그런 다음 유형을 전역/빈 네임 스페이스에 있다고 어떻게 말할 수 있습니까?
이 코드 예제 (콘솔 응용 프로그램)의 동작을 설명한다 :
using System;
namespace MyNamespace
{
public class Program
{
static void Main(string[] args)
{
MessageWriter.Write(); // writes "MyNamespace namespace"
global::MessageWriter.Write(); // writes "Global namespace"
Console.ReadLine();
}
}
// This class is in the namespace "MyNamespace"
public class MessageWriter
{
public static void Write()
{
Console.WriteLine("MyNamespace namespace");
}
}
}
// This class is in the global namespace (i.e. no specified namespace)
public class MessageWriter
{
public static void Write()
{
Console.WriteLine("Global namespace");
}
}
접두어는 전역 이름 공간을 나타냅니다. 다음은 그 예입니다.
namespace Bar {
class Gnat { }
}
namespace Foo {
namespace Bar {
class Gnat { }
}
class Gnus {
Bar.Gnat a; // Foo.Bar.Gnat
global::Bar.Gnat b; // Bar.Gnat
}
}
회원 a가 실수로 Foo.Bar.Gnat 클래스를 참조하는 방식에 유의하십시오. 이것을 피하려면 global :: 접두어를 사용하십시오.
생성 된 코드와 어떤 관련이 있습니까? 일반적으로 .net 디자이너 클래스에서는 전역 네임 스페이스의 유형을 참조하지 않습니다. –
코드 생성기가 Bar.Gnat 클래스를 참조하려고합니다. 코드가 Foo 네임 스페이스 내에 생성 된 경우 global :: 접두사가 사용되지 않는 한 Foo.Bar.Gnat 클래스가 참조됩니다. 코드 생성기는 생성 된 코드를이 실수로부터 보호하려고합니다. 그것은 다소 편집증 적이지만 그럼에도 올바른 일이며 아마도 내부 Microsoft 표준 일 것입니다. –
글로벌 :: 네임 스페이스 한정자는 중첩 된 네임 스페이스를 통해 해결하는 유형의 충돌을 방지하기 위해 자동 생성에 사용됩니다.
이것은 왜 질문에 대답하지 않습니다. 생성 된 코드는 네임 스페이스에 선언 된 유형을 사용하지만 여전히 global ::이 사용됩니다. –
@Ihar : Global은 비슷한 방식으로 네임 스페이스가 하위 네임 스페이스가 아니어야 함을 지정하는 데 사용됩니다 ... –
아니요 -이 질문은 세 가지를 묻습니다.이게 무슨 뜻인지 (설명),이 접두사가하는 일 (설명) 및 위치 그것을 사용해야합니다 (다른 두 점을 이해하면 알 수 있습니다). 질문 - "디자이너 파일에 왜 사용 되는가"는 원래의 질문자가 묻지 않았습니다. –