网易首页 > 网易号 > 正文 申请入驻

【小雨学编程之C#】 5.3 从世界级程序开始,代码解释

0
分享至

编程语言的代码真正的作用是一系列的指令,我们依照一定的规则去编写对应的代码,当点击生成解决方案后,Visual Studio会依据我们编写的指令生成对应的程序。

这里我们可以看到,我们正在操作的是Program.cs这个文件,这里的.cs便是C#文件的扩展名。

Hello World代码的基本结构是:

我们观察代码会发现,这里的代码是分层级的

其中using System自己是一层

其余的代码包含在namespace ConsoleApp中属于namespace ConsoleApp这一层

在namespace ConsoleApp中,也包含着 Class Program层和static void Main层,不同的层级用{}来区分。

从层级关系可以看出,代码是有从属关系的,这里的代码有两大从属关系,using System是一个单独的关系,namespace ConsoleApp是另一个关系。

简单解释一下,其实这里using System和namespace ConsoleApp是两个命名空间,其中System和ConsoleApp便是命名空间的名称,System这个命名空间是别人写的,ConsoleApp这个命名空间是我们写的,当然System源代码中也会像我们写ConsoleApp一样里面包含着一堆的代码。

这里的using意思是引用命名空间的意思,using System连起来意思是将要在当前的代码中引用System这个命名空间中的代码。

namespace的意思是声明命名空间,namespace ConsoleApp意思是在当前的位置声明ConsoleApp这个命名空间

两部分合起来就是在告诉Visual Studio我现在要引用别人写的代码,并且开始写自己的代码

但是问题来了,我们为什么要用别人的代码,在哪里用了?我们向下继续看。

在ConsoleApp中我们继续声明了一个Program结构,并在这个结构中又声明了一个Main结构。

其中Program叫做类,Main叫做入口函数。

之所以叫做入口函数,意思是程序运行时候,第一个运行的地方,比如我们复制一份代码命名为Main2,并且将对应位置修改成Hello World2,保存后再次运行程序。将会看到还是执行Main中的代码。

这时候我们突发奇想,如果复制两份相同的Main函数会发生什么

这时我们会发现,第二个Main函数下面出现了红色的波浪线,并且提示框出现了红色的报错提示

点击运行后,也同样报错。

但是如果我们将程序中的Main改成Main2,也就是让程序中的Main函数消失,会有怎样的效果

这时候,程序同样报错

这说明,一个程序中必须有,且只能有一个Main入口函数。

但是这时候我们又想到,Main函数的上层结构的名称一定要是Program吗,于是我们将Program修改成hello,点击运行。

这时我们发现,修改Program并不影响程序的运行

也就是说,程序的运行首要的是找到Main函数,至于Main函数被包含在哪个类中并不重要,重要的是一定要有,并且只有一个。

这时候,我们依葫芦画瓢,Program中复制一份Main 并改名为hello,并且在ConsoleApp中复制一份Program并改名为hello并将其中的Main改名为Main2,后点击运行

我们看到,程序正常运行没有报错,至此可以总结出,一个命名空间中可以有多个类,一个类中可以有多个函数。

我们继续看函数中的内容。

之前我们介绍,函数中的两句话:

Console.WriteLine(“Hello World”); 意思是输出Hello world

Console.ReadKey(); 意思是等待用户输入

但是问题来了,向屏幕输出和等待用户输入这两个动作不是我们编写的,我们只是在对应编码位置,填入了对应动作的编码而已,那对应动作的编码的来源是哪里呢?

其实这里就应用到了之前的System, Console.WriteLine(“Hello World”)的完整写法其实应当是System.Console.WriteLine(“Hello World”);

当我们将代码的完整写法填入代码区域的时候会发现,代码正常运行。

这也就是我们之前提出的概念,我们在自己的编码中引用了别人的代码。

在C#编程过程中,经常会出现这样的情况,其实C#这门语言存在了这么长的时间,已经有很多人完善了对应的基础功能,所以我们在编写自己的程序过程中,不需要再去浪费时间编写基础功能,直接引用就好了。

但是,这里我们又产生了疑问,那么什么时候使用代码的完整的格式,什么时候可以用简写格式呢?这时我们可以将代码还原成无System的格式,并且删除开始的using System

可以看到代码的Console位置直接出现了红色的下划线

并且点击运行后,也报错

但是如果在对应位置添加上System.后所有的代码便正常了

猜测,是否是代码的完整格式和using有关。

其实这里便是C#的代码引用规则,当不同命名空间中相互使用代码的时候,最直接的方式便是[命名空间.类名.方法名]的方式进行直接引用。

但是如果引用的次数很多,而且对应的命名空间名称很长不利于代码的编写和维护,所以直接在代码的最开始用[using 命名空间名]的方式告诉Visual Studio 我要在当前的代码中引用对应命名空间的方法啦,那么接下来在当前的命名空间中便可以用方法的简写方式引用啦。

至此,我们简单介绍了这个世界级程序的基本代码结构:

1、在代码的最开始,我们告诉Visual Studio当前的命名空间要引用System中的代码

2、告诉Visual Studio我创建了一个自己写代码的空间,名字为ConsoleApp

3、在ConsoleApp中创建了一个类名字为Program,并在Program中声明了一个入口函数Main,填写了两个动作,一个是输出Hello World,一个是等待用户输入

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
打款300万仍撕票!2中企高管在菲遭绑架,菲博主:离菲律宾远一点

打款300万仍撕票!2中企高管在菲遭绑架,菲博主:离菲律宾远一点

大风文字
2024-07-01 18:24:53
吴艳妮夺全国100米栏冠军,赛后:我不是“吴老二”,评论区炸锅

吴艳妮夺全国100米栏冠军,赛后:我不是“吴老二”,评论区炸锅

阿握看历史
2024-07-01 09:31:19
第85分钟破门!巴黎神锋造乌龙,法国1-0淘汰比利时!静待葡萄牙

第85分钟破门!巴黎神锋造乌龙,法国1-0淘汰比利时!静待葡萄牙

易说体坛
2024-07-02 01:52:39
刘烨大骂周迅:只会跟导演睡的二流演员!周迅一句回应直戳他心窝

刘烨大骂周迅:只会跟导演睡的二流演员!周迅一句回应直戳他心窝

小啾咪侃侃史
2024-06-23 13:02:20
郑钦文爆冷,温网首日:中国军团4胜5负,前一姐21连败,悲喜参半

郑钦文爆冷,温网首日:中国军团4胜5负,前一姐21连败,悲喜参半

草根体育
2024-07-02 03:03:10
都怪中国发展太快了!英媒揭穿莫迪:印度GDP虚高,经济增速造假

都怪中国发展太快了!英媒揭穿莫迪:印度GDP虚高,经济增速造假

古今历史记
2024-07-01 18:19:38
山东泰山三大变动即将揭晓:青训力量+新东家=重振雄风?

山东泰山三大变动即将揭晓:青训力量+新东家=重振雄风?

小王说体育1
2024-07-02 00:15:58
比贸易壁垒更可怕的是,美元脱钩

比贸易壁垒更可怕的是,美元脱钩

罗sir职话
2024-07-01 17:41:07
中东最大“白眼狼” 王毅才提出建议 立马翻脸 否定中国提议

中东最大“白眼狼” 王毅才提出建议 立马翻脸 否定中国提议

星辰故事屋
2024-06-30 18:31:33
何祚庥院士再批极左:当前最大的问题,是极左思潮泛滥成灾!

何祚庥院士再批极左:当前最大的问题,是极左思潮泛滥成灾!

雪莉故事汇
2024-07-01 07:50:22
华为官宣,降价6000元!优惠幅度逐步收窄

华为官宣,降价6000元!优惠幅度逐步收窄

21世纪经济报道
2024-07-01 13:00:10
美媒:乔治自由球员身份加盟76人 相当于哈登换了乔治+2首轮2次轮

美媒:乔治自由球员身份加盟76人 相当于哈登换了乔治+2首轮2次轮

直播吧
2024-07-01 16:32:21
成都理工大学王牌专业怎么样?5成以上升学率,清华北大不是梦!

成都理工大学王牌专业怎么样?5成以上升学率,清华北大不是梦!

大学深度解读
2024-07-01 11:18:40
余俄军在哈尔科夫投降,俄军败势已定,局势难逆?

余俄军在哈尔科夫投降,俄军败势已定,局势难逆?

寒山远殆
2024-07-01 12:48:04
雨还没完!中到大雨+暴雨!@河北人,下班早回家

雨还没完!中到大雨+暴雨!@河北人,下班早回家

鲁中晨报
2024-07-01 15:19:06
如果富士康撤出中国,会怎么样?

如果富士康撤出中国,会怎么样?

伊印
2022-11-02 09:07:34
独行侠3年合同!再见了,汤普森!NBA又将有重大交易……

独行侠3年合同!再见了,汤普森!NBA又将有重大交易……

篮球实战宝典
2024-07-01 05:41:33
张铭恩喜当爹?29岁徐璐低胸装直播面容憔悴,胸部变大下垂疑怀孕

张铭恩喜当爹?29岁徐璐低胸装直播面容憔悴,胸部变大下垂疑怀孕

八卦王者
2024-06-30 21:02:35
“电影皇帝”刘琼:离婚又再婚,前妻、后妻都是知名演员

“电影皇帝”刘琼:离婚又再婚,前妻、后妻都是知名演员

细品名人
2024-06-30 07:52:29
Stein:克莱昨天和湖人独行侠都会过面 欧文也在其中

Stein:克莱昨天和湖人独行侠都会过面 欧文也在其中

直播吧
2024-07-02 03:54:21
2024-07-02 05:24:49
小雨学编程
小雨学编程
分享编程知识与技巧
41文章数 36关注度
往期回顾 全部

科技要闻

天兵科技巩义现场工作人员:正寻找黑匣子

头条要闻

欧洲杯-法国1-0比利时晋级8强 维尔通亨自摆乌龙

头条要闻

欧洲杯-法国1-0比利时晋级8强 维尔通亨自摆乌龙

体育要闻

他们距离创造历史,只差1分33秒

娱乐要闻

今年内娱最大的闹剧,该收场了

财经要闻

债牛疯狂不止,引央行“出手”!

汽车要闻

奥迪Q6 e-tron Sportback官图曝光

态度原创

艺术
健康
数码
手机
教育

艺术要闻

穿越时空的艺术:《马可·波罗》AI沉浸影片探索人类文明

人类为何至今无法攻克渐冻症?

数码要闻

七彩虹多款 Z890、B860、H810 及技嘉 X870 主板现身 EEC 认证

手机要闻

iOS19:已经在路上!果粉:还没用上iOS18!

教育要闻

学霸解了半天,到最后还是放弃了,有根号难度大

无障碍浏览 进入关怀版