最近写代码的时候各种灵感勃发,有了灵感,就该实现了,可是,实现起来有些不流畅,总是有这样,那样的卡壳,总结下来发现了几个问题。
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!。
那么我们尝试一下上面图中的其他方式,不会?复制摘要粘贴到翻译里面,了解了是什么意思再尝试一下吧。
有感而发的一个分享理解的帖子,大家可以看一下,有什么不对的地方可以留言哈。。