【转】C#编译器错误 CS0246综述

本文详细介绍了在C#编程中遇到找不到类型或命名空间的错误时,如何通过检查拼写、程序集引用和using语句来解决编译问题。提供了从错误诊断到解决方案的完整指南。

原文地址:https://support.microsoft.com/zh-cn/kb/304656


症状
编译代码时,会出现下列错误消息:
找不到类型或命名空间名称 <类型 / 命名空间>(是否缺少 using 指令或程序集引用?)

其中 <类型 / 命名空间> 是您要使用的类型或命名空间的名称。
原因
可能会出现此错误的原因有多种:
  • 可能拼错了您要使用的类型或命名空间的名称。 若名称不正确,编译器就无法找到您在代码中引用的类型或命名空间的定义。 这种情况经常发生,因为 C# 是区分大小写的,而您在引用类型时未能使用正确的大写。例如,请看下面的代码:
    
    Dataset ds;
    这就会产生编译器错误 CS0246。 请注意 Dataset 中的“s”没有大写。
  • 如果错误是对命名空间的引用,则可能没有项目中引用到的命名空间所在的程序集。 例如,您可能在使用下列命名空间:
    
    using Accessibility;
    然而,如果没有项目中引用到的程序集 Accessibility.dll,就会出现编译器错误 CS0246。
  • 如果错误是对类型的引用,那么可能没有适当的 using 指令,或者可能没有完全限定的类型名称。 请看下面一行代码:
    
    DataSet ds;
    为了能够使用 DataSet 类型,您需要有两个东西。 首先,需要对包含 DataSet 类型定义的程序集的引用。 其次,需要针对 DataSet 所在命名空间的 using 指令。 例如,因为 DataSet 位于 System.Data 命名空间,所以在代码文件的开始处需要有下面的语句:
    
    using System.Data;
    不需要第二个步骤。 然而,如果您省略了这一步骤,那么在引用 DataSet 类型时需要对它进行完全限定。 对它进行完全限定指的是每次在代码中引用它时都使用命名空间和类型。 因此,如果决定省略第二个步骤,那么需要将声明代码更改为:
    
    System.Data.DataSet ds;
解决方案
出现此编译器错误后,首先要检查拼写是否正确。 如上文所述,最常见的原因是没有正确区分类型或命名空间的大小写。 如果您确信类型或命名空间的名称拼写正确(包括大小写也正确),那么请检查下面几项:
  1. 程序集引用: 

    确保引用了包含命名空间的程序集。 如果是在 Visual Studio .NET 中进行开发,则可以转到项目菜单并单击添加引用。 在 .NET 选项卡上,选择包含您要导入的命名空间的程序集,或者浏览到包含程序集的文件夹。 如果在使用命令行编译器,则向编译语句中添加相应的开关 (/reference)。
  2. 命名空间: 

    将 using 语句放在包含类型引用的代码文件的顶端,确保在将命名空间导入项目,如下所示:
    
    using System.Data;
    如果没有 using 语句,则完全限定对类型的引用:
    
    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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值