如何使用"查看哪个"在Visual Studio中使用

本文关键字:quot Studio Visual 何使用 | 更新日期: 2023-09-27 18:09:46

如何查看哪些using语句在Visual Studio 2013中提供了一个类?

如何检测冲突?

我有这样的代码

foo.cs:

namespace foo
{
    class XmlConverter 
    {
    }
}

bar.cs:

namespace bar
{
    class XmlConverter 
    {
    }
}

我需要使用foobar命名空间(都有多个类)。

编辑:我知道我可以重命名我的类(或使用别名),但我怎么能检测到这个问题(错误的类被使用)?这可能吗?

如何使用"查看哪个"在Visual Studio中使用

您可以使用using别名。语法如下:using MyAlias = MyNamespace.A .

参见使用别名指令和/或如何:使用全局命名空间别名

在你的例子中:

using FooConverter = foo;
using BarConverter = bar;
public ThirdPartyClass
{
     public void SomeMethod(FooConvert.XMLConverter fooConv, BarConverter.XMLConverter barConv)
     {
     }
}

当然,只有当实际的名称空间至少由两个部分组成,或者名称空间的名称很长,可以缩短而不影响可读性时,这才有意义。

例如,将System.IO缩短为SysIO或将ThisIsMyNamespace缩短为MyNamespace。否则就是更多的输入。在您的示例中,不使用using语句更有意义。

不可能的是以某种方式让编译器"检测"您是否正在使用foo的XMLConverter或bar的XMLConverter而不将某种分类器(无论是别名还是整个命名空间)放在类名前面。

To OP的更新:编译器会让你知道有些地方出错了。消息是Class1 is an ambiguous reference between Foo.Class1 and Bar.Class1

如果存在冲突,则c#将报错。在这种情况下,您的代码应该使用如new foo.XmlConverternew bar.XmlConverter所示的完全限定名称。

然而,这是不好的做法。如果可以,您应该将类重命名为FooXmlConverterBarXmlConverter