c# - 必须使用完全限定的类名

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

出于某种原因,在添加对 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 中的所有类,而不必为它们添加别名?我以前从未见过这种行为。

最佳答案

添加

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("..."))
{
    // ...
}

关于c# - 必须使用完全限定的类名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25060490/

相关文章:

C# - 并行 For 循环 : Parallel. For(); - 它们如何处理在它们之外声明的变量?

.net - 使用 .Net 使用 XmlSerializer 有什么限制(如果有的话)?

c# - 开卷问题

c++ - "Entities with the same name defined in an outer scope are hidden"不成立

c# - 异常处理(矛盾的文档/尝试最终与使用)

c# - IEnumreable 动态和 lambda

c# - 解析 oledb 的参数化字符串

c# - 如何使用jQuery调用c# webservice获取返回值

c# - 从州名制作州缩写

c++ - 对类型使用和使用 = 之间的区别?