global 是 C# 2.0 中新增的关键字,理论上说,如果代码写得好的话,根本不需要用到它。
假设你现在写了一个类,名字叫 System。那么当你再在代码里写 System 的时候,编译器就不知道你是要指你写的 System 类还是系统的 System 命名空间,而 System 命名空间已经是根命名空间了,无法再通过完全限名来指定。在以前的 C# 版本中,这就是一个无法解决的问题。现在,可以通过
global::System
来表示 System 根命名空间,而用你自己的
MyNamespace.System
来表示自己的类。
namespace MyRootNamespace
{namespace System
{
namespace Collection
{
namespace Generic
{
class List<T>{}
}
}
}
}
当然,在一般条件下避免使名称空间的名称与.Net的名称空间相同。
global 是 C# 2.0 中新增的关键字,理论上说,如果代码写得好的话,根本不需要用到它。
假设你现在写了一个类,名字叫 System。那么当你再在代码里写 System 的时候,编译器就不知道你是要指你写的 System 类还是系统的 System 命名空间,而 System 命名空间已经是根命名空间了,无法再通过完全限名来指定。在以前的 C# 版本中,这就是一个无法解决的问题。现在,可以通过
global::System
来表示 System 根命名空间,而用你自己的
MyNamespace.System
来表示自己的类。
你这段代码应该是用Linq时系统自动生成的,微软为了保证系统的稳定性,在system前面添加global关键字来表示这边的System是指系统的System命名空间!