如何使用"查看哪个"在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
{
}
}
我需要使用foo
和bar
命名空间(都有多个类)。
编辑:我知道我可以重命名我的类(或使用别名),但我怎么能检测到这个问题(错误的类被使用)?这可能吗?
您可以使用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.XmlConverter
或new bar.XmlConverter
所示的完全限定名称。
然而,这是不好的做法。如果可以,您应该将类重命名为FooXmlConverter
和BarXmlConverter
。