当项目不使用命名空间时,有没有办法告诉编译器使用静态类型而不是变量?
例如,我有一个名为User的类,它有各种静态和非静态方法.假设其中一个静态方法叫做GetUser().
我试图从一个方法调用该User.GetUser()方法,该方法也有一个名为User的范围变量(从基类继承).但是,编译器抱怨说它找不到User.GetUser(),因为它认为我指的是范围内的User变量.
如果这个项目使用名称空间,我可以做ns1.User.GetUser(),但在这种情况下这是不可行的.有没有办法告诉编译器我是指用户类型而不是用户变量?
解决方法
您可以使用:
global::User.GetUser()
或者使用using指令来替换类型:
using UserType = User; ... UserType.GetUser();
我强烈建议您使用命名空间:)