【C#】基础巩固

最近写代码的时候各种灵感勃发,有了灵感,就该实现了,可是,实现起来有些不流畅,总是有这样,那样的卡壳,总结下来发现了几个问题。

1、C#基础内容不是特别牢靠,理解的不到位,导致自己想出来了一些内容,但是无法使用正确的C#代码实现,导致灵感无法完美实现。

2、灵感有些天马行空,没有见过足够多的案例,也没有阅读过足够多的代码,导致自己的想法在落地实现的过程中有些偏离了方向。

结合以上两个问题,于是有了这样一篇文章,代表着我要从头开始一点一点的梳理基础。这篇文章是分享篇,把自己学习过程中的点滴记录下来(PS:都说最好的学习方式是费曼,也就是教别人学习,分享出来也是一种费曼,尤其是敲字敲下来,需要思考的过程,这样更加巩固了)。

我是跟着菜鸟教程从头到尾去学习的,然后会跟着里面的代码案例去理解哈。

目录

1、基础--hello world

2、代码解析

1、C#代码的基础了解

2、工具类----Console

3、让电脑说hello world

4、一个工具的多种用法

5、尝试十八般武艺


1、基础--hello world

首先就是基础中的基础---hello world

using System;
namespace HelloWorldApplication
{
   class HelloWorld
   {
      static void Main(string[] args)
      {
         /* 我的第一个 C# 程序*/
         Console.WriteLine("Hello World");
         Console.ReadKey();
      }
   }
}

看完菜鸟教程的说法,我现在又有了一番别样的理解:我们可以把代码当作是一台机器,机器运行需要各种零件,也需要使用机器的目的,同时也需要我们有原材料。

再简单点说:原材料----放入机器----产出内容。

然后,我们来看这篇代码。

目的是什么? 让我们的电脑程序说hello world。

原材料是什么? C#代码。

机器是什么? 我们运行程序的软件

那么我们要想知道怎么达成目标,就要了解这三者。

其中代表机器的软件,这里我就不多说了,大家可以去看网上的软件安装和使用教程,这里只说C#语言理论基础,而且会围绕着hello world这句话开始解析。

2、代码解析

1、C#代码的基础了解

原材料C#代码我们就要仔细了解一下了。

第一行 using System。using 代表的是引用,引用什么呢,引用组件库,这里System就是一个组件库,当然我们可以抽象的理解为一个工具箱,而System则是C#语言为我们准备的用来编辑系统的一个组件库

using 后面跟随的就是各种各样的工具箱(组件库),里面放满了各种工具。就像我们平常修电灯泡,修电视机,修各类东西得时候需要先找工具箱一样,我们去写代码的时候第一步就是去using各种组件库工具箱。

如果想要使用C#语言中提前给我们准备好的工具的话,我们必须先把这个工具箱拿出来,而使用using就代表了我们告诉电脑,我们拿出来了system工具箱。

这里我们使用System就代表我们要用这个工具箱中的一个工具,那我们用到的究竟是哪个工具呢??

这里,我们回到整篇代码中,把鼠标放在屏幕中间的Console上(如下图位置1的字母上。这里建议自己在软件内敲一遍之后跟着操作看一下),这样就能看到如下图出现的一行字,class System.Console,显示如下图位置2的地方。

这句话代表什么意思呢?我们可以粗略的理解为Console这个工具是属于System工具箱的。而System和Console中间的点就代表的是路径,就像我们打开文件管理器中的那个 \ 符号一样。

这里的打包文件是属于 Program Files文件夹路径下的一个文件夹。

2、工具类----Console

而这里的Console则是属于System工具箱中的一个工具,用专业术语来说,就是Console是属于System的一个类,作用是控制电脑的输入和输出。(这里面类也是专业术语,就像鸟类,虫类一样是某一个种类。)

这样我们就明白了他们的关系,using System是使用了一个叫做System的工具箱,而我们在下面的代码中,使用了一个叫做Console的管理输入和输出的工具,它是从System中拿出来的。

那么,这里我们使用Console工具的作用是什么呢?

我们接着往下看,看我们整篇代码的中间部分。

上图是我们的原代码,刚才我们说到了一个点,就是System和Console中间有一个点,代表Console是从System中拿到的。

那么这里,我们看到,在Console的后面还有一个点,点的后面是WriteLine外带一个括号和一句话,那么是不是意味着,我们可以理解WriteLine也是从Console中拿出来的呢?

那么我们敲击代码的时候,可以看到一个现象,就是当我们Console敲出来之后,会出现一个下拉列表,如下图:

这个下拉列表简单来说,就是Console这个工具所拥有的方法。

怎么理解呢?我们平常用到的工具非常多,像是螺丝刀,扳手,钳子等等,他们都有自己的使用方式和材质。而这里的下拉列表就是代表了Console这个工具的”使用方式“和”材质“,这里我们不过多研究。

3、让电脑说hello world

当我们打出来点之后,会自动选中第一个WriteLine,我们敲下回车之后,这个单词就会自动输入屏幕上。但是如果我们想要一句完整的代码,则需要在后面加上一对括号,同时需要在括号后面加上分号,并且需要使用英文输入法才能算作一句代码,下图为完整的一行代码。

WriteLine,看到这个单词的时候,会英语的一眼就能认出来了,这个单词是写的意思,只不过后面加上了一个Line,而在C#代码中,它的意思是将数据写入控制台并自动换行

但是,我们的目的是让代码输出一句Hello world,只是这个功能是不够的,还需要我们把想要输出的内容让代码帮我们实现。

我们的WriteLine后面的括号可以不放任何东西,代表自动换行。

但是我们也可以在括号中的双引号内输入任意字符(英文,汉字,符号,个别符号例外),这样就代表了我们想要把双引号内的指定内容输出并换行。

我们在括号中输入"Hello World!",然后按下F5,这样就会出现一个弹窗,里面会有一句话:"Hello World!",这就代表着我们完成了第一句代码的输出,当然,出现的弹窗我们可以直接关闭,就能回到编辑模式了。

简单回顾一下,想要使用C#语言让电脑说Hello World!,首先找到管理输入输出的功能模块,然后找到里面负责输出的那一个功能,然后让它输出Hello World!"就行了。

先 using System ,然后在Main下图的花括号中输入Console.WriteLine("Hello World");,最后F5执行就可以了。

这里,如果只是按照我说的做,窗口可以一闪就过了,那么我们在Console.WriteLine("Hello World");的这句话后面添加一句话Console.ReadKey();,就可以让我们的窗口暂停在我们的显示器界面上,让我们看到最后结果。

 Console.ReadKey();这句话的意思暂时不解释,大家可以接着往下看。

4、一个工具的多种用法

不知道大家发现没有,没有任何内容和输入内容的两个方式,效果完全不一样,这是为什么呢?

其实,这样就涉及到一个概念:一个工具多种用法

这里我们知道Console是一个类,它是负责电脑的输入输出。而WriteLine是这个类中的一个使用方式,专业术语叫做方法

但是,这个方法有很多种用法,就像我们的扳手一样,可以用来拧螺丝,也可以用来敲钉子,也可以用来上演武术(开个玩笑)。

我们的方法也有十八般武艺,如下图:

我们可以看到,在途中用红框框选中的地方,红框1是鼠标放置的位置,红框2则是当鼠标放上去之后,会显示的内容。

我们在图中可以看到,这句话代表着WriteLine是来源于Console,而括号中间的string value代表着我们可以在括号里面放置任何带双引号的文字内容,最后的(+18多个重载)则是代表我们的WriteLine会根据括号内放置的内容不同,有十八种用途(PS:还真是十八般武艺)。

说到十八般武艺了,可能扳手啥的,我们能看到实物,可以多尝试几次,那么代码我们怎么知道用途,怎么尝试呢?

5、尝试十八般武艺

这里有一个有意思的方式,会让我们知道它都有哪些十八般武艺,如下图:

可以看到,这里的WriteLine单词下面有一条横线,这是我按下了Ctrl键的同时,把鼠标左键放在WirteLine上,当我点下左键之后,我们就会跳到这个单词的说明书内,如下图:

里面密密麻麻的一串英文,看着挺复杂,但也挺简单,因为这里就是这个单词WriteLine的内置说明书。

C#语言怕你学不会,然后给你的都有内置的说明书,每个单词都是这样。如果不会英文也好办,摘要就是单词的说明,我们直接把摘要里面的英文复制粘贴到翻译里面,结果就是这样咯:

看完这个之后我们可以看到有很多类似的方式:

刚才我们从头到尾的了解了WriteLine的两个使用方式,一个是只有括号的,是换行,第二个是加入Hello World!的,输出了Hello World!。

那么我们尝试一下上面图中的其他方式,不会?复制摘要粘贴到翻译里面,了解了是什么意思再尝试一下吧。

有感而发的一个分享理解的帖子,大家可以看一下,有什么不对的地方可以留言哈。。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/348776.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2016年认证杯SPSSPRO杯数学建模B题(第一阶段)低分辨率下看世界全过程文档及程序

2016年认证杯SPSSPRO杯数学建模 B题 低分辨率下看世界 原题再现: 数码摄像技术被广泛使用于多种场合中。有时由于客观条件的限制,拍摄设备只能在较低的分辨率下成像。为简单起见,我们只考虑单色成像。假设成像的分辨率为 32 64&#xff0c…

架构师之路(十四)计算机网络(网络层)

前置知识(了解):计算机基础。 作为架构师,我们所设计的系统很少为单机系统,因此有必要了解计算机和计算机之间是怎么联系的。局域网的集群和混合云的网络有啥区别。系统交互的时候网络会存在什么瓶颈。 网络层提供主机…

Dlearning

Deep Learning Basic 神经网络: #mermaid-svg-rR22a8Udy5SxGOoP {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-rR22a8Udy5SxGOoP .error-icon{fill:#552222;}#mermaid-svg-rR22a8Udy5SxGOoP .error-t…

线扫相机使用教程

一.线扫相机的采集原理 在现有的工业 2D 相机中,主要有两种类型的相机,面阵相机和线扫相机。这两种相机有其 各自的特点。 面阵相机:主要用于采集较小尺寸的产品,特别是长度方向较小的产品。其采集原理是通过 单次或多次曝光&…

Atlassian 停服 Bitbucket?三步快速迁移至极狐GitLab

之前的文章Jira 母公司全面停服 Server 产品,用户如何迁移至极狐GitLab提到了 Atlassian 将在 2 月 15 日以后停止对 Server 端产品的服务支持,此后用户将无法像之前一样继续使用 Jira、Bitbucket、Bamboo、Confluence 这些产品了。如果用户想要继续使用…

蓝牙----蓝牙消息传输_GATT服务发现

蓝牙消息传输_GATT服务发现 1.主机和从机GATT服务的发现2.通知的使用 1.主机和从机GATT服务的发现 GATT服务的发现由主机执行,一共三个阶段  1.处理交换 MTU 请求和响应,启动对 Simple Service 服务的发现。 if (discState BLE_DISC_STATE_MTU){// MT…

四川思维跳动商务信息咨询有限公司专注抖音电商服务

在当今这个数字化时代,电商服务已经成为企业发展的重要驱动力。四川思维跳动商务信息咨询有限公司作为一家专注于抖音电商服务的公司,以其卓越的服务质量和创新能力,成为了行业的领航者。 四川思维跳动商务信息咨询有限公司自成立以来&#x…

pyqt5+vscode 配置坑笔记

1.conda activate XX 时失败 这样出来的python版本也是错的(总是全局版本) 无法加载文件 D:\Documents\WindowsPowerShell\profile.ps1,因为在此系统上禁止运行脚本 系统设置允许执行脚本解决 无法加载文件WindowsPowerShell\profile.ps1…

leetcode hot100组合

在本题中,是要求返回[1,n]这个数组的长度为k的组合。涉及到排列、组合、棋盘、分割等问题的时候,要考虑利用回溯来进行解决。 回溯和递归类似,也分为三步进行分析 确定递归函数的返回值和参数:一般来说返回值都是void&#xff0c…

互斥锁/读写锁(Linux)

一、互斥锁 临界资源概念: 不能同时访问的资源,比如写文件,只能由一个线程写,同时写会写乱。 比如外设打印机,打印的时候只能由一个程序使用。 外设基本上都是不能共享的资源。 生活中比如卫生间,同一…

微软人工智能办公AI工具 Copilot Pro 11项 Copilot 功能

Copilot(曾用名 Bing Chat 和 Bing Chat Enterprise)在此期间成为了许多用户的日常AI伴侣,并在正式发布后将继续为用户提供AI驱动的网络聊天体验。 微软Copilot官方网址链接:Microsoft Copilot: 你的日常 AI 助手 Copilot详情&am…

香港web3盛会:Unisat确认参加Big Demo Day项目路演

本次“Big Demo Day”将于1月31日举办第十期,是由Zeepr 总冠名,Central Research、Techub News联合主办、数码港、852web3支持举行的大型线下活动。Big Demo Day集结了Web2和Web3行业精英聚焦香港市场。 Unisat确认参加 Big Demo Day 线下活动&#xff0…

14.java集合

文章目录 概念Collection 接口概念示例 Iterator 迭代器基本操作:并发修改异常增强循环遍历数组:遍历集合:遍历字符串:限制 list接口ListIteratorArrayList创建 ArrayList:添加元素:获取元素:修…

Java JVM类加载阶段 双亲委派模式

类加载阶段 加载 将类的字节码载入方法区中,内部采用 C 的 instanceKlass 描述 java 类,它的重要 field 有: _java_mirror 即 java 的类镜像,例如对 String 来说,就是 String.class,作用是把 klass 暴露…

WWDG喂狗

3F 是0111111 40 是1000000 0X7F 127 0X5F 95 127-9532 注意:中断是在0x40,在0x40喂狗则程序不会复位 在0x5F之前喂狗会复位,减小到63以下也会复位 在0x5F与0x3F之间喂狗会继续执行,不会复位 WWDG_HandleTypeDef WWDG_Handler; //窗口看门狗句柄//初始化窗口看门狗…

2024 高级前端面试题之 HTML 「精选篇」

该内容主要整理关于 HTML 的相关面试题,其他内容面试题请移步至 「最新最全的前端面试题集锦」 查看。 HTML模块精选篇 1. 如何理解HTML语义化2. H5的新特性有哪些3. 说一下 HTML5 Drag API4. iframe有那些缺点5. 如何实现浏览器内多个标签页之间的通信6. 简述一下s…

EF core连接数据库的前期完整配置流程-开发环境搭建

EF core连接数据库完整流程-开发环境搭建 前置:.net6 core webapi不勾选任何配置 声明:这里是以两个配置类来做的,一个T_Books表,一个T_Person表 Book:创建属性及类型 BookConfig:对创建的进行属性数据表…

坚持刷题 | 平衡二叉树

文章目录 题目考察点代码实现实现总结对实现进一步改进扩展提问 坚持刷题,老年痴呆追不上我,今天继续二叉树:平衡二叉树 题目 110.平衡二叉树 考察点 递归能力: 能否使用递归来解决问题。树的基本操作:能否正确地访…

【算法练习】leetcode算法题合集之动态规划篇

普通动规系列 LeetCode343. 整数拆分 LeetCode343. 整数拆分 将10的结果存在索引为10的位置上,需要保证数组长度是n1,索引的最大值是n,索引是从0开始的。 n的拆分,可以拆分为i和n-i,当然i可以继续拆分。而且拆分为n-…

Vue基础知识

Vue Vue基础知识 v-bind:动态绑定属性值 Vue 修改&#xff0c;标签内也修改 在methods 中可以定义很多函数 在 data 中可以定义很多变量 v-if / v-show&#xff1a;对符合条件的元素进行展示 v-for:把数据遍历出现在网页中 案例 <!DOCTYPE html><html lang"e…