Chciałbym zrozumieć, dlaczego warto użyć prefiksu global::
. W poniższym kodzie ReSharper jest określenie go jako zbędny i może zostać usunięta:Dlaczego warto używać słowa kluczowego globalnego w języku C#?
Odpowiedz
najlepiej jest skorzystać z globalnej przestrzeni nazw prefiks w wygenerowanym kodzie. Ma to na celu uniknięcie sytuacji, w których podobny nazwany typ istnieje w twojej przestrzeni nazw.
Jeśli utworzyć typ nazwie System.Diagnostics.DebuggerNonUserCodeAttribute
wewnątrz przestrzeni nazw można zauważyć, że ReSharper już nie mówi, że global::
nie jest potrzebne. Generator kodu po prostu chce uniknąć kolizji z nazwami własnych typów.
Bardzo pomocna, dziękuję. –
Krótka, prosta i miła odpowiedź – CreativeManix
słowa kluczowego global::
powoduje kompilator powiązać nazwy rozpoczynające się w globalnej przestrzeni nazw, a nie w obecnym kontekście. Jest potrzebny w miejscach, w których wiążący członek istnieje w danym kontekście, który ma taką samą nazwę jak globalny, a globalny jest pożądany.
Na przykład
class Test {
class System {}
public void Example() {
System.Console.WriteLine("here"); // Error since System binds to Test.System
global::System.Console.WriteLine("here"); // Works
}
odpowiedniej strony MSDN ma jeszcze kilka przykładów (w tym jeden powyżej)
„Globalny kluczowe kontekstowa, jeśli chodzi przed :: operator, odnosi się do globalnej przestrzeni nazw, która jest domyślna przestrzeń nazw dla każdego programu C# i jest inaczej bezimienny”.
Źródło: https://msdn.microsoft.com/en-us/library/cc713620.aspx
Shami Qureshi, jeśli zamierzasz skopiować słowo w słowo, musisz przynajmniej wspomnieć o źródle. Chociaż twoja odpowiedź naprawdę * nie * odpowiada na pytanie, zmieniłem ją tak, aby zawierała adres URL, z którego go skopiowałeś. – johnnyRose
- 1. Klasy PHP, dlaczego warto używać słowa kluczowego publicznego?
- 2. Dlaczego używamy zmiennego słowa kluczowego w C++?
- 3. Zasady korzystania z słowa kluczowego restrict w języku C?
- 4. Użycie słowa kluczowego "this" w języku Java
- 5. Jaki jest pożytek ze słowa kluczowego `default` w języku C#?
- 6. Równoważnik słowa kluczowego C# "as" w języku Java
- 7. F # odpowiednik słowa kluczowego `is` w języku C#?
- 8. Kiedy używać NOWEGO słowa kluczowego w języku C# podczas tworzenia obiektu w ASP.NET MVC 5
- 9. Jak używać ważnego słowa kluczowego w mixin?
- 10. Jak używać słowa kluczowego "podniesienie" w Pythonie
- 11. Dlaczego IntPtr nie potrzebuje niebezpiecznego słowa kluczowego?
- 12. Równoważnik słowa kluczowego Super w C#
- 13. Alternatywy dla słowa kluczowego "using" w C#?
- 14. Jak najlepiej używać słowa kluczowego const w C?
- 15. Czy zawsze musimy używać asynchronicznego słowa kluczowego?
- 16. Dlaczego warto używać NSAutoreleasePool?
- 17. Dlaczego używać słowa kluczowego "this", aby uzyskać metody nadklasy?
- 18. Kiedy należy używać słowa kluczowego "self"?
- 19. Dlaczego warto używać Gradle?
- 20. Dlaczego warto używać shm_open?
- 21. Odpowiednik C++/CLI słowa kluczowego C# 'readonly'
- 22. Czy istnieje odpowiednik słowa kluczowego C# "var" w C++/CLI?
- 23. Optymalizacje dla końcowego słowa kluczowego
- 24. ReactJS: Dlaczego warto używać this.props.children?
- 25. Dlaczego warto używać statycznego w D?
- 26. C# Wzory użycia słowa kluczowego "is"
- 27. Dlaczego warto używać wzorca konstruktora?
- 28. Dlaczego warto używać JIT UNITVERSIONING?
- 29. Dlaczego warto używać angularfire $ destroy()?
- 30. Dlaczego warto używać QObject :: setObjectName()?
@John, po prostu ciekawy - próbuje dowiedzieć się, dlaczego jest on wykorzystywany w procesie kodu gen. –
Paul wyraźnie chce być odpo- wiedzialnym w SO pewnego dnia. Idź Paul! –
@ John-Saunders Powiedzenie komuś, że zignoruje ich ciekawość, jest okropną radą. Jak dokładnie można oczekiwać, że ktokolwiek się nauczy? @ Paul-Fryer Myślę, że to świetne pytanie - często zastanawiałem się nad tym samym, ale nie zadawałem sobie pytania. – Jake