C# 高级编程01----.Net基础介绍
一、C#与.Net 的关系
1)C#语言
1. C#是一种简洁、类型安全的面向对象语言,可以使用C#语言创建可以在.Net Framework上运行的应用程序
2. C# 语言功能取决于.Net 的功能,依赖于.Net 基类。也就是C#编写的代码使用.Net Framework运行。
3. C#只是用于生成.Net 环境的代码,但本身不是.Net 的一部分
2).Net 平台
1. .Net Framework的核心是运行库执行环境(CLR)
2. C#源码首先需要编译成Microsoft中间语言(IL),运行库环境(CLR)将中间语言编译成平台专用的代码。
3. IL编译即时编译(JIT),并不是将整个应用程序都一次性编译完(这样启动时间会很长),它只编译他调用的那部分代码
4.IL编译成的中间语言使它能支持平台无关性
5.IL还支持语言互操作。就是任何一种语言编译为中间语言之后,可以与其他语言编译过来的中间语言进行交互。一种语言编写的类可以直接与另一种语言编写的类进行通信
3).Net 支持的语言:
VB.Net(Visual Basic 6 以前不适合)、Visual C++ 6、F#
4)语言之间的互操作实现
数据类型:
.Net 中使用通用类型系统(CTS)定义了中间语言中使用的预定义数据类型,所有面向.Net Framework的语言都可以生成基于这些类型的编译代码
如:VB语言中的Integger类型映射到中间语言为Int32,C#语言使用int来表示Int32
公共语言规范(CLS):
CLS 是一个最低标准集,所有面向.Net 的编译器都必须支持它。
二、面向.Net 的所有语言都需要支持的IL特征:
1.支持面向对象可以使用接口。
2.值类型和引用类型的区别
1)值类型直接在栈内存存储数据
2)引用类型在堆内存存放地址,通过地址来找到对应的数据
3. 强数据类型
4.使用异常处理错误
5. 使用特性(attribute)
三、程序集
1. 程序集(assembly)是包含编译好的,面向.Net Framework的代码逻辑单元
2. 反射
程序集存储了元数据,元数据中包含了程序集中定义的所有类型和类型的成员细节,可以通过反射访问这些元数据
四、.Net 4.5 基类
- IL提供的核心功能(CTS中的基本数据类型等)
- Windows UI支持和控件
- ASP.NET 的Web窗体和MVC
- ADO.Net 和XML进行数据访问
- 文件系统和注册表访问
- 网络和Web浏览
- .Net特性和反射
- COM互操作性
C# 高级编程01----.Net基础介绍的更多相关文章
- Linux高级编程--01.vi命令
VI是Linux/Unix下标配的一个纯字符界面的文本编辑器.由于不支持鼠标功能,也没有图形界面,相关的操作都要通过键盘指令来完成,需要记忆大量命令.因此很多人不大喜欢它,但同时由于键盘的方式往往比鼠 ...
- shell编程01—shell基础
01.学习shell编程需要的知识储备 1.vi.vim编辑器的命令,vimrc设置 2.命令基础,100多个命令 3.基础.高端的网络服务,nfs,rsync,inotify,lanmp,sersy ...
- Shell高级编程学习笔记(基础篇)
目录 1.shell脚本的执行方法 2.shell的变量类型 3.shell特殊变量 4.变量子串的常用操作 5.批量修改文件名实践 6.变量替换 7.在shell中计算字符串长度的方法 ...
- UNIX环境高级编程——计算机体系结构基础知识
无论是在CPU外部接总线的设备还是在CPU内部接总线的设备都有各自的地址范围,都可以像访问内存一样访问,很多体系结构(比如ARM)采用这种方式操作设备,称为等都会产生异常. 通常操作系统把虚拟地址空间 ...
- Web3D编程入门总结——WebGL与Three.js基础介绍
/*在这里对这段时间学习的3D编程知识做个总结,以备再次出发.计划分成“webgl与three.js基础介绍”.“面向对象的基础3D场景框架编写”.“模型导入与简单3D游戏编写”三个部分,其他零散知识 ...
- Linux环境高级编程--介绍
从今天開始.将开启Linux环境高级编程(Advanced Programming Of Linux Enviroment)的学习笔记或者说总结,我将持续和大家分享自己的学习成果.本系列博客依托于li ...
- linux高级编程基础系列:线程间通信
linux高级编程基础系列:线程间通信 转载:原文地址http://blog.163.com/jimking_2010/blog/static/1716015352013102510748824/ 线 ...
- Linux C高级编程——网络编程基础(1)
Linux高级编程--BSD socket的网络编程 宗旨:技术的学习是有限的,分享的精神是无限的. 一网络通信基础 TCP/IP协议簇基础:之所以称TCP/IP是一个协议簇,是由于TCP/IP包括T ...
- shell脚本编程基础介绍
Linux系统——shell脚本编程基础介绍 1.什么是shell 它是一个命令解释器,在linux/unix操作系统的最外层,负责直接与用户对话,把用户的输入解释给操作系统,并处理各种操作输出的结果 ...
- javascript高级编程笔记01(基本概念)
1.在html中使用JavaScript 1. <script> 元素 <script>定义了下列6个属性: async:可选,异步下载外部脚本文件. charset:可选, ...
随机推荐
- Springboot读取Jar文件中的resource
如题,碰到了问题. 事情是这样的. 一个导入模板, 因为比较少, 所以就直接放在后台的resources中了.调试的时候是下载没有问题的. 等到发布后,下载就出问题了. 参照: ***.jar!\BO ...
- MySQL之B+树索引(转自掘金小册 MySQL是怎样运行的,版权归作者所有!)
每个索引都对应一棵B+树,B+树分为好多层,最下边一层是叶子节点,其余的是内节点.所有用户记录都存储在B+树的叶子节点,所有目录项记录都存储在内节点. InnoDB存储引擎会自动为主键(如果没有它会自 ...
- odoo Model字段的参数
odoo Model字段的参数 class Field(object): """ The field descriptor contains the field defi ...
- IIC时序操作24C02芯片
1.心血来潮看自己能不能参考时序图重新写一个IIC驱动,加强一下时序图的理解.记录下来,以后遇到此类的IIC时序的芯片可以直接操作. 先说说自己参照手册来写AT24c02的IIC低层驱动,从写完到最后 ...
- android 调用 screenrecord 实现录屏
首先要说明的是并未实现,本文讲一下自己的思路. adb 使用shell 命令 screenrecord 可录屏. 自己写了个app,通过Process p = Runtime.getRuntime() ...
- OrCAD原理图中怎么导出FPGA的引脚分配
流程 (1)选择tool下的export FPGA: (2)选择厂商,选择器件型号.选择生成文件类型. 以上.
- docker添加阿里云专属镜像
阿里云镜像地址:https://link.zhihu.com/?target=https%3A//cr.console.aliyun.com/%23/accelerator 根据提示开启容器镜像服务, ...
- BZOJ 1010: 玩具装箱toy (斜率优化dp)
Description P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京.他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器中.P教授有编号为1... ...
- java开发代码中的50个性能优化细节
在java程序中,性能的大部分原因并不在java与语言,而是程序本身.养成好的编码习惯非常重要,能够显著地提升程序性能. 1:尽量在合适的场合使用单例 使用单利可以减轻加载的负担,缩短加载时间,提高加 ...
- Hall定理 二分图完美匹配
充分性证明就先咕了,因为楼主太弱了,有一部分没看懂 霍尔定理内容 二分图G中的两部分顶点组成的集合分别为X, Y(假设有\(\lvert X \rvert \leq \lvert Y \rvert\) ...