剑英陪你系列又来啦。剑英是一个有大爱的人,热爱每一个程序员,尤其是年轻漂亮的女程序。让我们一起响应暴走九月不撸,不撸不撸,九月我不撸。
从Helloworld开始
你可能已经看过了无数的Helloworld,是什么感觉呢?
兴奋,失望,满足?
还是已经想不起来什么感觉了?
我已经想不起来了,我是一只好了伤疤忘了痛的动物,我入门的那个时间过去很久了,我已经忘记了那时的很多细节。于是我决定从头来做这个系列,和你一起,再从头,收拾旧山河。也重拾那一份一无所知的心态。
什么是C#
C#?什么鬼名字?whatthefuck?
这得往前一点说起。那时候除了微软,还有一个强大的开发工具商borland。他俩掐的死去活来,结果微软挖走了delphi他爹安德斯·海尔斯伯格。当然borland的衰落也不仅仅是因为痛失此位大神,反正他在borland当时也没事做。
微软倒是挖到了宝,当时微软主要的开发工具是Visual系列,主力产品visualc++,visualbasic,visualfoxpro。至于现在大家熟知的visualstudio,就是visual系列的打包促销。
彼时业界产生了一个震动全球的破坏性的产品,java。是的,java就是这么NB。于是安德斯来微软第一件事就是抄个java,然后就有了visualj++。
后果可想而知,官司打输了,j++不能卖。然后盖子和安德斯在一起憋啊,想啊,这不行,这是潮流,还得抄,但是得避开和java的相似性。
于是就搞出了dotnet。把语言和字节码拆成相互独立的部分。至于那个语言,由于有j++的历史,又有c++的特点。于是有个说法,最终叫做c++++,四个+凑成了一个#。
而c#的发音是csharp,中文翻译犀利c。这下你知道了,C#就是犀利C。
C#与我有什么关系
言归正传,由于unity采用了Mono作为脚本引擎,而Mono是Dotnet的一个开源实现。dotnet最主要的语言是c#,所以使用Unity时,的最主要的开发语言是C#。
是不是根本无法绕清楚,是的,我也绕不明白。
JAVA语言,JAVA字节码,JAVA运行时,JAVA基本类库,都叫java。
而微软和c#这边有点混乱
C#语言,MSIL字节码,dotnet运行时,dotnetframework。有三种名字。
为什么不弄成和java一样呢?j++一样,太像了违法。
dotnet,有时候也直接用个点.net,是c#的运行时,dotnetframework是c#的基本类库。
Msil就是字节码,存字节码的文件叫pefile,就是.dll文件.exe文件,这个你肯定熟悉。
但是微软分开了语言和字节码运行时类库,也带来了一个优点。可以建立多种可以混用类库的语言。
后来微软将c#、msil、dotnet标准都提交给了国际标准化组织,也就是他作为一个国际标准,谁都可以遵守。
有一个很爱c#,很爱dotnet的人想要一个liunx可以用的dotnet,微软自己当然守着windows了,标准化以后,这个人搞了mono。
他们还成立一家很屌的公司,叫做xamarin。
遵守和dotnet一样的标准,但是实现为可以跨平台执行,这就是mono。
Unity跨平台的关键技术,就是这个mono,现在虽然unity自己搞了il2cpp,这个你自己体会吧。
要做一个Unity程序攻城狮,C#是你需要学习的。
C#怎么学?
首先c#是微软的亲儿子。微软有c#的集成开发环境,叫visualc#。
现在你要找到独立的visualc#下载还不容易,因为他们打包促销了,建议你下载一份vs,并安装好他。社区版不要钱,旗舰版的序列号也遍地都是。
Visualstudio长这样
什么,你用macbook,那关我什么事情?我们就是要用windows和visualstudio来做说明,自己想办法解决。
然后我们建立第一个c#控制台项目,来编写我们的第一个helloworld。
为什么要从控制台应用程序开始呢?控制台又是什么。
控制台在windows上表示的是以命令行输入输出的方式交互的程序。这个说法太官方,一张图你就秒懂。
嗯,如果你经历过dos年代,这个问题就不用纠结了。
我们从控制台程序开始,因为他最单纯,控制台程序只有一种输入,一种输出。一个入口函数,函数执行完就退出。是一个简洁的测试环境。开始摇滚吧。
新建好的项目是这样的,在开始说代码之前,让我们先来认识一下VisualStudio的样子。
VS用的是一种流行的界面形式,Dock,贴靠的意思,他的每一个界面部分可以取出来,重新组合,所以你看到的vs有时候不是这样的,不用担心。
每一块称为一个视图,当你不小心关掉了一个视图,从菜单栏的视图中可以找到并打开它。
还有一部分视图在调试菜单中。
接下来你要认识的第一个视图叫做解决方案资源管理器
Vs在组织项目的时候,采用两层概念,一个叫做,项目,一个叫做解决方案。
一个项目负责产生一个exe或者dll。
一个解决方案包含若干个项目。
一切操作的起点,都是这个解决方案资源管理器。
在helloworld项目上点右键属性,就是上图中高亮的那里。
你可以看到这个内容,程序集名称,就是项目生成的exe或者dll的名字,比如我们把他改成h01。
把生成的数出路径也修改一下,方便我们找到他,这里用相对路径绝对路径都可以。
从生成这里点生成解决方案,或者从资源管理器右键操作,或者用快捷键,都行。
如无意外,输出视图会如下显示,时刻