IT story

C #에서 글로벌 키워드를 사용하는 이유는 무엇입니까?

hot-time 2021. 1. 6. 20:25
반응형

C #에서 글로벌 키워드를 사용하는 이유는 무엇입니까?


global::접두사 를 사용하는 이유를 이해하고 싶습니다 . 다음 코드에서 ReSharper는이를 중복으로 식별하고 제거 할 수 있습니다.

대체 텍스트


생성 된 코드에서 전역 네임 스페이스 접두사를 사용하는 것이 가장 좋습니다. 이는 네임 스페이스에 유사한 명명 된 유형이 존재하는 상황을 방지하기 위해 수행됩니다.

System.Diagnostics.DebuggerNonUserCodeAttribute 네임 스페이스 내에 이름이 지정된 유형을 생성하면 ReSharper에서 더 이상 global::이 필요하지 않다고 표시하지 않습니다. 코드 생성기는 단순히 자신의 유형 이름과의 충돌을 피하기를 원합니다.


이 키워드 global::는 컴파일러가 현재 컨텍스트가 아닌 전역 네임 스페이스에서 시작하는 이름을 바인딩하도록합니다. 바인딩 가능한 멤버가 글로벌 멤버와 동일한 이름을 가진 주어진 컨텍스트에 존재하고 글로벌 멤버가 필요한 곳에서 필요합니다.

예를 들면

class Test {
  class System {}
  public void Example() {
    System.Console.WriteLine("here"); // Error since System binds to Test.System
    global::System.Console.WriteLine("here"); // Works
}

해당 MSDN 페이지에는 위의 예를 포함하여 몇 가지 예가 더 있습니다.


"전역 문맥 키워드는 :: 연산자 앞에 올 때 모든 C # 프로그램의 기본 네임 스페이스 인 전역 네임 스페이스를 참조하며 그렇지 않으면 이름이 지정되지 않습니다."

출처 : https://msdn.microsoft.com/en-us/library/cc713620.aspx

참조 URL : https://stackoverflow.com/questions/3552763/why-use-the-global-keyword-in-c

반응형