【问题标题】:Having to use a fully qualified class name必须使用完全限定的类名
【发布时间】:2014-09-23 11:48:27
【问题描述】:

由于某种原因,在添加了对MySql.Data 的引用并添加了using 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 中的所有 类而不必为它们设置别名?我以前从未见过这种行为。

【问题讨论】:

  • 你试过new MySqlClient.MySqlConnection();
  • @TimSchmelter 这行得通(感谢该块的顶行)。
  • 如果你不想要别名,为什么要使用别名?

标签: c# .net using using-statement using-directives


【解决方案1】:

添加

using MySql.Data.MySqlClient;

现在可以了:

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

在使用new 初始化对象期间,您不能使用“子命名空间”。所以这是不允许的:

using MySql.Data;

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

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

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

【讨论】:

  • 这已经是漫长的一天,我怎么没有注意到顶行的别名,idk。谢谢!
【解决方案2】:

您需要整个命名空间。

using MySql.Data.MySqlClient;

【讨论】:

    猜你喜欢
    • 2020-11-12
    • 2012-04-30
    • 1970-01-01
    • 2014-02-07
    • 2011-11-08
    • 1970-01-01
    • 1970-01-01
    • 2021-03-25
    • 2013-06-29
    相关资源
    最近更新 更多