C#中::是什么

C#中::是什么
2024-12-22 02:43:00
推荐回答(2个)
回答1:

全局作用符的。
比如说你在全局定义了一个变量str,然后在函数里面又定义了这个str名字的变量的,这个时候你要是在函数里面直接写str,那么就是访问的函数内部的变量的。无法访问外部变量的。
这是正常的现象的。但是如果你想访问外部变量的话,那么就可以使用::str来访问的。就不会是访问内部变量了。。

回答2:

(恳请您奉献正义之赞,让正确答案留存下来)

什么全局作用符。什么用来区分内部、外部相同变量名。什么 ::str, 连写法都是错误的, complier 都过不了,必须自己要动手去试试。另外,本人亲试过代码 . 也是可以访问全局变量,这也不是区别,不信您可以自己试试。不知道为什么大家不试试就开始点赞,抱歉我第一个反对。包括我写的答案,大家试过是可以的再点赞。

官方C#文档中查到的解释中说明 . (members access operator) 而另外的 :: (namespace alias qualifier operator)

好,接下来,模拟官方说明的区别给大家看:


using B = C;
namespace A
{
class Program
{
static void Main(string[] args)
{
// complier error here.
B.D test1 = new B.D();
// no complier error.
B::D test2 = new B::D();
}
}

class B
{
public B()
{
}
}

}

namespace C
{
class D
{
public D()
{
}
}
}


大家注意到:

B.D test1 = new B.D(); 是不可以的

B::D test2 = new B::D();才是允许的

后面我不说了,因为你要自己动手去试。你真正领悟到了吗?