我继承了一个大型的c#项目。其中一个类具有名称空间和类,它们具有相同的名称。因此,在创建类的实例时,我必须这样做:
using xxx.existingName
IinterfaceName dog = new existingName.existingName();
由于现有类具有接口,因此我可以避免在existingName.existingName
左侧使用=
。使用var dog
也会这样做。但是我也想避免在右侧使用existingName.existingName
,因为它的可读性较差。
如果不重命名现有代码,有没有办法做到这一点?
答案 0 :(得分:1)
您可以使用alias来提高可读性(嗯,不是这些名称):
using AliasForName = existingName;
...
IinterfaceName dog = new AliasForName.existingName();
如果原作者看过this MSDN article,他首先会使用不同的名字:
X请勿对名称空间和类型使用相同的名称 命名空间。例如,不要使用
Debug
作为命名空间名称 还在同一名称空间中提供名为Debug
的类。一些 编译器要求这些类型完全合格。
顺便说一句,你应该真正应用capitaliation conventions。
答案 1 :(得分:1)
您可以通过using
指令重命名类或命名空间:
using ClassAlias = Test.Test;
using NamespaceAlias = Test;
public class Program
{
public static void Main()
{
ClassAlias a = new ClassAlias();
NamespaceAlias.Test t = new NamespaceAlias.Test();
}
}
namespace Test{
public class Test{}
}