C#开发学习~~~“未能找到类型或命名空间名称“XXXX”(是否缺少 using 指令或程序集引用?)”

2023-11-17

引言

在《C#高阶编程》(中文第10版)的2.2.4节中,有这样一段描述:
出自《C#高阶编程》(中文第10版2.2.4节看到这段话,我简单的理解为,只要在程序开始用using语句声明名称空间,就可以在当前名称空间使用声明的这个名称空间中的类和方法,但实践证明我的理解是有些错误的T0T

问题与解决

首先,创建两个项目,分别是RectangleApplication和HelloWordApplication
在这里插入图片描述
源码如下:

  • RectangleApplication—Program.cs,这里定义了名为“RectangleApplication”的名称空间,并创建 Rectangle类和 Area类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace RectangleApplication
{
    class Rectangle
    {
        double width;
        double length;
        double area;//成员变量

        public void getDetails()
        {
            width = 2.8;
            length = 3.1;
        }//成员方法
        public double getArea()
        {
            area = width * length;
            return area;
        }//成员方法
        public void show()
        {
            Console.WriteLine("Witdh:{0}", width);
            Console.WriteLine("Length:{0}", length);
            Console.WriteLine("Area:{0}", getArea());
        }//成员方法
    }
    class Area
    {
        static void Main(string[] args)
        {
            Rectangle r = new Rectangle();
            r.getDetails();
            r.show();
            Console.ReadKey();
        }
    }
}

可以正常编译运行,结果是:
在这里插入图片描述

  • HelloWordApplication—Program.cs,在这里,使用using语句声明“RectangleApplication”这个名称空间,并且在main()方法中调用“RectangleApplication”名称空间中的类与方法。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using RectangleApplication;

namespace HelloWordApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            Rectangle r = new Rectangle();
            r.getDetails();
            r.show();
            Console.WriteLine("成功运行了!");
            Console.ReadKey();
        }
    }
}

执行报错,如图:
在这里插入图片描述
在using语句中声明了名称空间,但却没有成功引用该名称空间的类,在网上找到解决方法如下:
在项目的展开目录下,有一个“引用”目录,右键点击,选择“添加引用”,进入【引用管理器】,因为这里是引用同一解决方案中的另一项目的命名空间,所以选择相应的项目(RectangleApplication)就好,点击“确定”。
引用管理其此时,using已经不再报错,但是又出现了新的错误,如图:
在这里插入图片描述
原因是,在namespace中的类、接口默认是internal访问类型的,只允许同一程序集文件中的成员访问,如果要让另一程序集访问,须显示的将该类访问类型定义为public。如下:
在这里插入图片描述
至此,不再报错,HelloWordApplication项目可以正常运行,运行结果如下:
HelloWordApplication运行结果

问题积累

  • 项目目录中的“引用”和代码中的using有什么区别?
    在项目目录中的“引用”中添加某一程序集(库文件)或者项目后,该项目就可以使用这一程序集中的内容了,包括访问权限许可的类、方法等。
    而using则方便我们使用引用了的程序集,因为一个程序集下有一个或者多个名称空间,使用using可以对其中某一名称空间进行引入,与此同时,也简化了我们的代码,当在代码中需要用到引用的程序集中的某一方法时,如果使用using语句引入了方法所在的名称空间,我们在使用方法时只需写类.方法即可,否则就还需要在这前面加上冗长的名称空间,非常不方便。
    总之using引入名称空间成功的前提是在项目的“引用”中添加了该名称空间所在的程序集

  • C#默认访问权限(部分)
    1.在namespace中的类、接口默认是internal类型的,可以显示的定义为public类型,但不允许是其他访问类型。
    2.在一个类里面,变量和方法默认是private的,可以显示的定义为public、private、protected、internal或protected internal等访问类型。
    3.接口中不能定义成员变量,接口中的方法访问权限默认且只能为public,不能显示的定义任何访问类型。
    4.抽象类中抽象方法可以是public、internal、protected,不能是private的访问类型。
    5.类中所有的成员,默认均为private。

    C#中的访问修饰符:

    下表引用自《C#高级编程(中文第10版)4.4.1 访问修饰符
    图片来自《C#高级编程(中文第10版)4.4.1 访问修饰符》 补充:微软官方C#指南 中,新增一种访问修饰符如下:
    private protected 访问限于同一程序集中的包含类或派生自包含类的类

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C#开发学习~~~“未能找到类型或命名空间名称“XXXX”(是否缺少 using 指令或程序集引用?)” 的相关文章

  • 检测到 NuGet 包的版本冲突

    我正在开发 ASP Net core 2 1 Web 应用程序项目 我的解决方案中有 1 个项目和 3 个其他库 它是高级架构 数据访问层 DAL 业务层 BL 公共层 CL 所以我需要添加引用来连接一些库和项目 我已经添加了CL参考我的项
  • MEX 文件中的断言导致 Matlab 崩溃

    我正在使用mxAssert 宏定义为matrix h在我的 C 代码中 mex 可以完美编译 当我调用的 mex 代码中违反断言时 该断言不会导致我的程序崩溃 而是导致 Matlab 本身崩溃 我错过了什么吗 这是有意的行为吗 当我查看 M
  • 获取两个字符串之间的公共部分c# [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我需要的是获取两个单词之间的共同部分并获取差异 例子 场景1 word1 感言 word2 Test 将返回 公共部分Test 不同之
  • 使用实体框架从集合中删除项目

    我正在使用DDD 我有一个 Product 类 它是一个聚合根 public class Product IAggregateRoot public virtual ICollection
  • Guid 应包含 32 位数字和 4 个破折号

    我有一个包含 createuserwizard 控件的网站 创建帐户后 验证电子邮件及其验证 URL 将发送到用户的电子邮件地址 但是 当我进行测试运行时 单击电子邮件中的 URL 时 会出现以下错误 Guid should contain
  • TextBox 焦点的 WinForms 事件?

    我想添加一个偶数TextBox当它有焦点时 我知道我可以用一个简单的方法来做到这一点textbox1 Focus并检查布尔值 但我不想那样做 我想这样做 this tGID Focus new System EventHandler thi
  • 为什么 std::allocator 在 C++17 中丢失成员类型/函数?

    一边看着std 分配器 http en cppreference com w cpp memory allocator 我看到成员 value type pointer const pointer reference const refer
  • Xamarin Android:获取内存中的所有进程

    有没有办法读取所有进程 而不仅仅是正在运行的进程 如果我对 Android 的理解正确的话 一次只有一个进程在运行 其他所有进程都被冻结 后台进程被忽略 您可以使用以下代码片段获取当前正在运行的所有 Android 应用程序进程 Activ
  • 事件日志写入错误

    很简单 我想向事件日志写入一些内容 protected override void OnStop TODO Add code here to perform any tear down necessary to stop your serv
  • C# 创建数组的数组

    我正在尝试创建一个将使用重复数据的数组数组 如下所示 int list1 new int 4 1 2 3 4 int list2 new int 4 5 6 7 8 int list3 new int 4 1 3 2 1 int list4
  • C# 编译器如何决定发出可重定向的程序集引用?

    NET Compact Framework 引入了可重定向程序集引用 现在用于支持可移植类库 基本上 编译器会发出以下 MSIL assembly extern retargetable mscorlib publickeytoken 7C
  • “MyClass”的类型初始值设定项引发异常

    以下是我的Windows服务代码 当我调试代码时 我收到错误 异常 CSMessageUtility CSDetails 的类型初始值设定项引发异常 using System using System Collections Generic
  • C# using 语句、SQL 和 SqlConnection

    使用 using 语句 C SQL 可以吗 private static void CreateCommand string queryString string connectionString using SqlConnection c
  • C# 搜索目录中包含字符串的所有文件,然后返回该字符串

    使用用户在文本框中输入的内容 我想搜索目录中的哪个文件包含该文本 然后我想解析出信息 但我似乎找不到该字符串或至少返回信息 任何帮助将不胜感激 我当前的代码 private void btnSearchSerial Click object
  • 是否有一个 C++ 库可以从 PDF 文件中提取文本,例如 PDFBox for Java? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 去年 我使用 PDFBox 在 Java 中创建了一个应用程序来获取某些 PDF 文件中的原始文本 现在
  • 我应该在应用程序退出之前运行 Dispose 吗?

    我应该在应用程序退出之前运行 Dispose 吗 例如 我创建了许多对象 其中一些对象具有事件订阅 var myObject new MyClass myObject OnEvent OnEventHandle 例如 在我的工作中 我应该使
  • 以编程方式使用自定义元素创建网格

    我正在尝试以编程方式创建一个网格 并将自定义控件作为子项附加到网格中 作为 2x2 矩阵中的第 0 行第 0 列 为了让事情变得更棘手 我使用了 MVVM 设计模式 下面是一些代码可以帮助大家理解这个想法 应用程序 xaml cs base
  • 在基类集合上调用派生方法

    我有一个名为 A 的抽象类 以及实现 A 的其他类 B C D E 我的派生类持有不同类型的值 我还有一个 A 对象的列表 abstract class A class B class A public int val get privat
  • Azure函数版本2.0-应用程序blobTrigger不工作

    我有一个工作功能应用程序 它有一个 blob 输入和一个事件中心输出 在测试版中工作 随着最新的更改 我的功能不再起作用 我尝试根据发行说明更新 host json 文件 但它没有引用 blob 触发器 version 2 0 extens
  • 如何确定母版页中正在显示哪个子页?

    我正在母版页上编写代码 我需要知道正在显示哪个子 内容 页面 我怎样才能以编程方式做到这一点 我用这个 string pageName this ContentPlaceHolder1 Page GetType FullName 它以 AS

随机推荐

  • win10环境下PCL安装和配置回顾(一)

    2020年博主有写过几篇关于PCL的博客 这边想先回顾下 再增加点新内容 之前写的博客专栏如下链接 https blog csdn net jiugeshao category 11993239 html spm 1001 2014 300
  • 基于FPGA的频率计设计

    文章目录 写在前面 1 什么是频率计 2 测量方法与基本原理 3 待测信号如何输入FPGA 一 实验程序 1 RTL图 2 Verilog 参考设计 3 指派引脚 二 调试验证 输入不同频率的方波 写在前面 1 什么是频率计 频率计是一种专
  • 正则表达式用ajax怎么写,使用AJAX(包含正则表达式)验证用户登录的步骤

    我们来分一下步骤吧 1 HTML代码 页面先写出来 2 正则表达式验证输入的用户名密码是否正确 失去焦点验证 3 Ajax异步提交 4 servlet这是后台处理代码获取数据并对比响应 然后跳转成功页面 效果图 结构 代码如下 table
  • TensorFlow 的基本概念和使用场景

    TensorFlow 是一个热门的机器学习框架 由 Google 开发 用于构建和训练神经网络和其他机器学习模型 下面是 TensorFlow 的基本概念和使用场景 基本概念 1 张量 Tensor 是 TensorFlow 中的基本数据结
  • 防止运营商劫持apk

    title 防止运营商劫持apk tags https upyun apk 运营商 劫持 categories 工作日志 date 2017 05 25 18 18 56 目前f6部分系统使用了upyun的服务 包含apk的下载和静态资源等
  • Exception常见异常类型和处理机制

    Exception 意外异常 异常层次结构的父类 Throwable 是异常Exception与Error的父类 直接继承自Object Error通常指系统发生的严重性的错误 不能通过程序代码解决的问题 Exception异常可以通过修改
  • 在ipad任意界面都可以写字_不再泡面!大学生如何用iPad高效学习

    如果你还是一个学生 相信平时上课记笔记一定是最头疼的问题 平时的笔记期末就不见了等等 用电子的方式记录就可以完美解决这个问题 而目前比较推崇 流行的方式就是使用iPad Apple Pencil的组合 书写的感觉也接近纸质 但同样的 你也需
  • 多层嵌套的 javabean转化为xml时 更改嵌套的属性名称时 报错重复

    我们先来看下报错 如果需要给多层嵌套javabean 转化为xml时 转化的标签名字不符 我们需要该怎么做呢 不是多层嵌套的我们可以直接使用 XmlElement name 来进行别名 如果多层的话 我们则需要给在每个路过的类上都需要加上
  • 公众号H5开发如何在本地调试

    1 设置本地hosts的地址映射 如blog test com映射127 0 0 1 方法 修改hosts的地址映射 使域名解析到指定IP 2 配置公众号网页授权获取用户基本信息 3 修改vue配置 vue cli3创建的项目 在项目根目录
  • 【PLC 课程设计】花式喷泉

    花式喷泉的控制 要求 按下启动按钮 喷泉装置开始工作 按下停止按钮 喷泉装置停止工作 喷泉的工作方式由花式选择开关和单步 连续开关决定 当单步 连续开关在单步位置时 喷泉只能按照花样选择开关设定的方式运行一个循环 花样选择开关用于选择喷泉的
  • 从零实现DevOps(四):Jenkins+GitLab自动化部署SpringBoot项目(Jenkins本地环境+Jar包模式)

    从前三篇文章中 我们已经实现了gitlab jenkins项目的安装与基础配置 并且给Centos7操作系统搭配了jdk maven等环境变量 从这边文章起 从零实现DevOps 系列 将正式开始利用Jenkins Gitlab的完美结合
  • 【华为OD统一考试B卷

    华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一修改为OD统一考试 A卷 和OD统一考试 B卷 你收到的链接上面会标注A卷还是B卷 请注意 根据反馈 目前大部分收到的都是
  • elasticsearch query 要点

    查看分析效果 godproduct analyze analyzer ik smart text 雅诗兰黛眼霜 简单filter查询 POST myindex mytype search query bool filter term use
  • 常用Web安全扫描工具合集

    初入门时 喜欢将目标站点直接丢扫描器 慢慢等扫描结果 极度依赖Web扫描器 而有一些漏洞高手 善于运用运用各种工具但并不依赖工具 经常可以找到扫描工具发现不了的漏洞 一款好用的Web扫描器对于白帽子来说 就像剑客手中的剑一样重要 那么 如何
  • python os.walk不递归_python-os.walk目录递归

    递归删除文件或目录 递归 os walk 删除目录 shutil rmtree 1 coding UTF 8 2 importos path sys shutil3 4 path H test 5 6 7 for root dirs fil
  • 敏捷之旅大连站2012第一次筹备会议记录

    昨天召集了敏捷之旅大连站的几位组织者 一起开了一个筹备的讨论会 简单记录如下 1 地点的讨论 目前有几个地点备选 东软会议中心 腾飞软件园的会议厅 中荷人寿会议室以及酒店 综合各种因素 包括地点的交通 午餐的方便程度 场地的大小 音响和投影
  • 2.C++设计模式 - 观察者模式

    class Observer public 构造 Observer 析构 virtual Observer 更新 virtual void updata class Server private 观察者链表 list
  • 微信多客服如何设置快捷回复(高级玩法总结)

    在微信生态 使用公众号小程序等 同时每天会产生很多重复的咨询 如何在微信上实现更高效的快捷回复 把常用语 回答文档等便捷化 标准化对答 避免以往的复制粘贴工作方式 是我们不得不面对的一个问题 应用内回复 全应用回复 个人回复 公共回复 快捷
  • Hadoop - wordCount 实例

    hadoop 创建文件夹存放需要被统计的文件 hadoop fs mkdir usr 创建单子文件并写入内容 可在网上找几篇英文文章写入 vim word txt 上传到 hdfs hadoop fs put word txt usr 利用
  • C#开发学习~~~“未能找到类型或命名空间名称“XXXX”(是否缺少 using 指令或程序集引用?)”

    引言 在 C 高阶编程 中文第10版 的2 2 4节中 有这样一段描述 看到这段话 我简单的理解为 只要在程序开始用using语句声明名称空间 就可以在当前名称空间使用声明的这个名称空间中的类和方法 但实践证明我的理解是有些错误的T0T 问