c# - 范围解析运算符::与成员访问运算符。在 C#

标签 c# operator-keyword scope-resolution

在 C# 中,A::BA.B 有什么区别?我注意到的唯一区别是只有 :: 可以与 global 一起使用,但除此之外,有什么区别?为什么它们都存在?

最佳答案

::运算符仅适用于别名 global 是一个特殊的系统提供的别名。

所以...这有效:

using Foo = System.ComponentModel;

public MyClass {

  private Foo::SomeClassFromSystemComponentModel X;

}

但不是这个:

public MyClass {

  private System.ComponentModel::SomeClassFromSystemComponentModel X;

}

这可以让您摆脱在与库集成时可能出现的子命名空间的 hell :

namespace MyAwesomeProduct.System
{

}

而你在你的代码中有

using MyAwesomeProduct;

global::让您找到真正的系统。

MSDN info here

关于c# - 范围解析运算符::与成员访问运算符。在 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4731501/

相关文章:

c# - 如何对齐标签中的文本

c++ - 为什么范围解析在这里不起作用?

php - PHP 中的多个 paamayim nekudotayims,为什么不呢?

Javascript 相当于 PHP 的::(范围解析运算符)

c# - MS 企业库配置应用程序 block 已从 4.1 堆栈中删除?

c# - 是否可以将独立的 C# 应用程序发布到 Linux?

c# - 如果我在整个运行过程中都需要一次性用品怎么办?

c++ - 对两个不同的类对象使用比较运算符

c++ - 懒惰、重载的 C++ && 运算符?

javascript - 这个表达式在 javascript 中是什么意思?