必须使用完全限定的类名

Having to use a fully qualified class name

提问人:Danny Beckett 提问时间:7/31/2014 更新时间:7/31/2014 访问量:674

问:

出于某种原因,在添加引用和添加 之后,我无法键入 - 相反,我必须键入 .MySql.Datausing MySql.Data;new MySqlConnection()new MySql.Data.MySqlClient.MySqlConnection();

我可以通过将以下内容添加到我的班级顶部来解决这个问题:

using MySqlClient = MySql.Data.MySqlClient;
using MySqlConnection = MySql.Data.MySqlClient.MySqlConnection;
using MySqlException = MySql.Data.MySqlClient.MySqlException;

但是,我怎样才能在不给它们加上别名的情况下访问其中的所有类呢?我以前从未见过这种行为。MySqlClient

使用 using-directives 的 C# .NET

评论

0赞 Tim Schmelter 7/31/2014
你试过了吗?new MySqlClient.MySqlConnection();
0赞 Danny Beckett 7/31/2014
@TimSchmelter 这行得通(多亏了该块的顶行)。
2赞 Selman Genç 7/31/2014
如果你不想要别名,你为什么要使用别名?

答:

1赞 David Crowell 7/31/2014 #1

您需要整个命名空间。

using MySql.Data.MySqlClient;

3赞 Tim Schmelter 7/31/2014 #2

using MySql.Data.MySqlClient;

现在这有效:

using(var con = new MySqlConnection("..."))
{
    // ...
}

在初始化对象期间,不能使用 “sub-namespaces”。所以这是不允许的:new

using MySql.Data;

// ...
using(var con = new MySqlClient.MySqlConnection("..."))
{
    // ...
}

因为被视为一个类,而不是命名空间的一部分。这就是为什么它无法解决,需要完全限定的原因:MySqlClient

using(var con = new MySql.Data.MySqlClient.MySqlConnection("..."))
{
    // ...
}

评论

0赞 Danny Beckett 7/31/2014
这是漫长的一天,我怎么没有注意到顶行的别名,idk。谢谢!