A little help understanding this keyword from the .Net experts please.
Here is what raised the question for me:
A little help understanding this keyword from the .Net experts please.
Here is what raised the question for me:
The keyword global::
causes the compiler to bind names starting in the global namespace as opposed to in the current context. It's needed in places where a bindable member exists in a given context that has the same name as a global one and the global one is desired.
For example
class Test {
class System {}
public void Example() {
System.Console.WriteLine("here"); // Error since System binds to Test.System
global::System.Console.WriteLine("here"); // Works
}
The corresponding MSDN page has a few more examples (including the one above)
It is best to use the global namespace prefix in generated code. This is done to avoid situations where a similar named type exists in your namespace.
If you create a type named System.Diagnostics.DebuggerNonUserCodeAttribute
inside your namespace you will notice that ReSharper no longer says that the global::
is not needed. The code generator simply wants to avoid any collisions with the names of your own types.