原文地址:https://support.microsoft.com/zh-cn/kb/304656
症状
找不到类型或命名空间名称 <类型 / 命名空间>(是否缺少 using 指令或程序集引用?)
其中 <类型 / 命名空间> 是您要使用的类型或命名空间的名称。
原因
- 可能拼错了您要使用的类型或命名空间的名称。 若名称不正确,编译器就无法找到您在代码中引用的类型或命名空间的定义。 这种情况经常发生,因为 C# 是区分大小写的,而您在引用类型时未能使用正确的大写。例如,请看下面的代码:
这就会产生编译器错误 CS0246。 请注意 Dataset 中的“s”没有大写。
Dataset ds; - 如果错误是对命名空间的引用,则可能没有项目中引用到的命名空间所在的程序集。 例如,您可能在使用下列命名空间:
然而,如果没有项目中引用到的程序集 Accessibility.dll,就会出现编译器错误 CS0246。
using Accessibility; - 如果错误是对类型的引用,那么可能没有适当的 using 指令,或者可能没有完全限定的类型名称。 请看下面一行代码:
为了能够使用 DataSet 类型,您需要有两个东西。 首先,需要对包含 DataSet 类型定义的程序集的引用。 其次,需要针对 DataSet 所在命名空间的 using 指令。 例如,因为 DataSet 位于 System.Data 命名空间,所以在代码文件的开始处需要有下面的语句:
DataSet ds;不需要第二个步骤。 然而,如果您省略了这一步骤,那么在引用 DataSet 类型时需要对它进行完全限定。 对它进行完全限定指的是每次在代码中引用它时都使用命名空间和类型。 因此,如果决定省略第二个步骤,那么需要将声明代码更改为:using System.Data;System.Data.DataSet ds;
解决方案
- 程序集引用:
确保引用了包含命名空间的程序集。 如果是在 Visual Studio .NET 中进行开发,则可以转到项目菜单并单击添加引用。 在 .NET 选项卡上,选择包含您要导入的命名空间的程序集,或者浏览到包含程序集的文件夹。 如果在使用命令行编译器,则向编译语句中添加相应的开关 (/reference)。 - 命名空间:
将 using 语句放在包含类型引用的代码文件的顶端,确保在将命名空间导入项目,如下所示:如果没有 using 语句,则完全限定对类型的引用:using System.Data;System.Data.DataSet ds;
状态
属性
文章 ID:304656 - 上次审阅时间:12/06/2015 04:27:47 - 修订版本: 1.0
- Microsoft Visual C# .NET 2002 标准版
- kbnosurvey kbarchive kbprb kbcompiler kbprod2web KB304656
本文详细介绍了在C#编程中遇到找不到类型或命名空间的错误时,如何通过检查拼写、程序集引用和using语句来解决编译问题。提供了从错误诊断到解决方案的完整指南。

1976

被折叠的 条评论
为什么被折叠?



