使用静态类型而不是变量
当项目不使用命名空间时,有没有办法告诉编译器使用静态类型而不是变量?
例如,我有一个名为User的类,它有各种静态和非静态方法。 假设其中一个静态方法叫做GetUser()
。
我试图从一个方法调用User.GetUser()
方法,该方法也有一个名为User的范围变量(inheritance自基类)。 但是,编译器抱怨说它找不到User.GetUser()
因为它认为我指的是范围内的User变量。
如果这个项目使用名称空间,我可以做ns1.User.GetUser()
,但在这种情况下这是不可行的。 有没有办法告诉编译器我是指User
类型而不是User
变量?
您可以使用:
global::User.GetUser()
或者使用using指令来替换类型:
using UserType = User; ... UserType.GetUser();
我强烈建议您使用命名空间:)
你能写global::User.GetUser()
吗?
见全球
-
使用
global::User.GetUser()
。 -
使用别名:
using UserClass = User;
-
重命名变量。
-
重命名类型。
-
减少变量的范围,使其不再在您使用变量的范围内。
或者,您可以为静态类使用别名。 在您的using
指令中,您可以添加:
using StaticUser = User;
然后就不会有歧义了。