반응형
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
반응형
'IT story' 카테고리의 다른 글
CSS 만 사용하여 텍스트 뒤집기 / 반전 / 미러링 (0) | 2021.01.06 |
---|---|
for 루프를 사용하지 않고 String 배열을 인쇄 할 수있는 방법이 있습니까? (0) | 2021.01.06 |
JSON 문자 인코딩 (0) | 2021.01.06 |
래퍼 내 두 범위 중 하나의 텍스트 오버플로 줄임표 (0) | 2021.01.06 |
Nested Fragment (Android 4.2)를 사용하여 ViewPager 내에 Fragment를 추가하는 방법 (0) | 2021.01.06 |