c#核心语法汇总强化和快速强化
1.vs2017(2019)
2数据库-sqlserver2012
3项目类型(控制台-->主要是学习用;窗体程序(windows,C/S、桌面应该)、web程序、web服务程序、)
4项目的组成
【1】解决方案:主要是用来管理我们添加的各种项目。可以对解决方案内部的所有项目,统一编译
开发一个项目:这个项目和我们说的“项目”不是一个概念。
我们在解决方案中的项目理解:一个类库、一个可启动程序,都可以为第一个项目
一般一个解决方案,对应我们一个真实的“项目”。
【2】项目包括:类库、可启动程序(一般就是编译后是exe格式,能够独立运行的比如windows程序、web程序)
【3】程序集(assmbly):一个类库、一个可启动程序、、、、都是程序集
【4】模块:(针对开发角度)模块通常是按照功能划分组成的各个类库或可启动项
一个模块:可能是一个类库。也可能是多个类库,也可能包括可启动项
项目的三层:任何的复杂的都是几个。
【5】引用:是将不同的类库或者程序集,关联到一块。这样的话,可以实现对另个程序集的访问
注意:引用只能是单向,不能是双向。(A-->B 但是B是不能在引用到A的)
引用的时候,注意高版本的程序集,可以引用低版本 反之 不行
方法:通过右击--》添加--》引用。或者右击添加nuget(尤其是.net core使用中,只有这个方式)
【6】发布:(可以直接使用,不需要专门的发布,如果你想安装包)
开发阶段:一般使用dbug,因为通过dbug我们可以断点调试程序
发布阶段:我们一般在dbug没有问题的情况下,使用release发布
不同之处:debug调试生成。必然会增加一些信息,大项目的话,生成的文件较大。
release发布后,一般直接可以使用。尤其是web开发的的时候。回做特殊化
特别的,我们后面学习多线程的时候,我们讲过release会有bug|
请记住:解决方案中的每个项目都有对应的debug和release文件夹
当我们调试的或者release的时候,每个对应的文件夹厦门的文件都会自动更新
文件分析:pdb与调试相关的。这个你不用管.会有dll文件,或者exe文件
bll->dal models
dal-dal models
一个程序集在编译后生成的文件,包括他自己,其次包括他所引用的所有程序集
当我们通过解决方案统一编译项目的时候各个debug或者release文件夹厦门的文件都会被立即更新
如果当我们程序调试过程中,由于你的调试的不正确等危险操作,到手这些文件不能立即更新,请自动手动删除
生成的所有文件即可。
【7】
dll
exe:misproject.exe misproject.vhost.ext(vs开发阶段用的,最后开发完成这个是没用)
最后我们打包的时候,一般吧项目可启动项目中release文件夹汇总的所有:dll文件,不带vshost的exe文件、图片文件、其他资源文件等直接拷贝走就行
【8】第三方dll的引用:如果是.net添加直接引用.如果不是.net平台开发的,请按照稳定文明。
注意:我们新建一个炫目一般都会自动生成和项目名称一样的解决方案名称
当然,我们可以自动单独创建一个恐怖解决方案,然后往里面添加需要的各种项目
PS:当我们在一个项目中,引用其他项目,想使用里面的类,一定要在使用的地方,引入对应的命名空间。
5项目生成分析
【1】dll和exe里面有什么?
通过使用ILDASM工具查看,我们发现
不管c#开发的,还是vb.net开发的,都会被首先编译成il
所以c#调用vb.net开发的模块,反之亦然
注意:c#和vb语法不一样,但是IL中是一样的,为什么。因为有个叫做cls 这样一个语法翻译官
c#和vb数据类型不同,但是IL中是一样的,为什么呢 因为有割叫做cts的翻译官
两种不同的开发语言,数据类型看是不同,但是最后翻译的iL都是.NET数据类型
【2】程序执行的过程
写代码--》调用后编译成il-->编译程机器语言(其实是一个非常复杂的过程)
6命名空间的使用
作用:就是用来对应各种类进行管理。也就是一个类一定要归属摸个特定的命名空间
类必须在摸个默默空间下面。不能脱离命名空间
运算语句必须放在方法 属性里面