:: 运算符 - 命名空间别名运算符

使用命名空间别名限定符 :: 访问别名命名空间的成员。 只能在两个标识符之间使用 :: 限定符。 左侧标识符可以是命名空间别名之一、外部别名或 global 别名之一。 例如:

  • 使用 alias 指令创建的命名空间别名:

    using forwinforms = System.Drawing;
    using forwpf = System.Windows;
    
    public class Converters
    {
        public static forwpf::Point Convert(forwinforms::Point point) => new forwpf::Point(point.X, point.Y);
    }
    
  • extern 别名

  • 别名 global ,即全局命名空间别名。 全局命名空间是包含未在命名命名空间内声明的命名空间和类型的命名空间。 与限定符一起使用 :: 时, global 别名始终引用全局命名空间,即使存在用户定义的 global 命名空间别名也是如此。

    以下示例使用 global 别名访问 .NET System 命名空间,该命名空间是全局命名空间的成员。 global如果没有别名,将访问作为命名空间成员MyCompany.MyProduct的用户定义System命名空间:

    namespace MyCompany.MyProduct.System
    {
        class Program
        {
            static void Main() => global::System.Console.WriteLine("Using global alias");
        }
    
        class Console
        {
            string Suggestion => "Consider renaming this class";
        }
    }
    

    注释

    关键字 global 是全局命名空间别名,仅当它是限定符的 :: 左侧标识符时。

还可以使用 . 令牌 访问别名命名空间的成员。 但是,令牌 . 还用于访问类型成员。 ::限定符可确保其左侧标识符始终引用命名空间别名,即使存在具有相同名称的类型或命名空间。

C# 语言规范

有关详细信息,请参阅 C# 语言规范命名空间别名限定符部分。

另请参阅

  • C# 运算符和表达式