C#基础学习[1]--从菜鸟到黑客大神(暂时不定时更新)

本文章着重原理入手,深入浅出剖析程序与计算机之间的联系。讲解C#方面的编程技巧和原理

                                      第一章  。NET与C#


.NET/C#是什么?

C#是语言,.NET是平台。c#语言通过.NET编写/运行程序。

但是通过.NET平台的语言不止C#一种,比如VB。


那为什么我们不学.NET平台的其他语言呢:1.C#语言是专门为.NET平台而生的,2.C#是完全面向对象的语言。


.NET平台的构成?(.NET平台里有些什么东东?)

最重要的2个组件

FCL(Framework Class Library,简称FCL)-框架类库 类都是属于.NET平台的 而不是C#语言的,所以FCL是微软事先帮我们写好的类的集合。

CLR(Common Language Runtime)-公共语言运行时 =》创建 部署 运行.NET程序的必备环境 没有他.NET程序是运行不了的。亲~- -!


.NET历史 2002年 .NET v1.0问世 现在。NET版本都到4.5了。(vs2012)

。NET平台问世的目的是什么?搞死JAVA。。。呵呵!!。NET平台真正广泛使用时在v2.0的时候。这是个跨时代的时刻 对于。NET来说。比如泛型就是v2.0产生的。


每个版本的发布都是对于一个IDE--(Integrated Development Environment,集成开发环境) ,IDE是什么。我们写的程序是什么?

我们写的所有代码只是一些符合C#语法的字符串。那我们在文本程序里也能写出这些所谓代码。我们需要编译器,编译器可以检查我们的语法规则,然后帮我们把源代码生成程序集。就是那个exe文件(使用开发人员工具 csc命令也可以实现),说到这里就必须讲到CPU了。

学过电脑的兄弟都应该知道CPU是干什么的东东的。CPU是什么?CPU--中央处理单元,他的主要工作1.计算,2协调电脑个组件工作。那么我们的CPU认识我们的C#代码么?不认识,CPU只能认识二进制数据的,那么既然CPU不认识俺们的C#代码,那么他又是怎么帮我们执行我们的C#代码的呢?那么我们可以大胆的猜测,在CPU执行我们的代码之前,肯定有某种力量将我们的C#代码转换成二进制代码。那么中间发生了什么:

       C#源代码通过csc文件的检查语法后编译成程序集,暂时理解exe文件就是我们的程序集(不是所有的exe文件都叫程序集的,只有通过csc的才能),dll和exe都是程序集的一类。程序集里面有什么东东呢?最重要的就是MSIL(微软中间语言),那么程序集里就是微软的中间语言咯,用我们的反编译工具(原理是反射),反编译我们的程序集。双击运行我们的程序集,啪啪。这个时候我们的CLR登场了,里面的JIT(Just In Time,及时编译器),这个及时编译器就会将我们的中间语言转换成二进制代码,并将指令交给CPU执行。

       那么问题又来了,为什么C#编程二进制代码给CPU执行的过程这么麻烦,首先要转换成MSIL中间语言然后再交给CLR的JIT及时编译器编译之后再交给CPU执行呢?为什么不直接把C#代码转换成二进制交给CPU执行就好了?大家主要到二进制是要给CPU指令才能执行的,也就是说CPU要得到一个命令咯。那么CPU目前的两大品牌是Inter和AMD也还有一些其他的小品牌,那么其实那个CPU的同一个命令可能表达出来时完全不一样的。

      举个例子,比如开机这个命令Inter可能叫今天天气真好,AMD可能叫今日气象很好。其实JIT就是将C#代码转换成本地电脑可以识别的二进制代码。这里说一下C语言和C++就是直接将源代码转换成二进制代码的。其实C和C++编译的代码就是编译的CPU之间的交集。他们其实运用的空间是很有限的。

    其实如果有一种编译器能够将JAVA编译成MSIL那么JAVA也可以看做是一个.NET平台上的语言。其实这步实现也并不是那么困难!所以我们。NET平台是一个跨语言的平台

而且现在通过一个开源的框架Mono现在.NET也是一个跨平台的平台了!

     。NET框架是什么--.NET Framework. 这么一个强大的东西到底是什么的呢?其实就是一个40M的软件。。。 装了这个等于就装了框架类库 公共语言运行时。安装了这个。NET里面自带的类我们就不需要在重新去引用了。




  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值