一、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基础介绍的更多相关文章

  1. Linux高级编程--01.vi命令

    VI是Linux/Unix下标配的一个纯字符界面的文本编辑器.由于不支持鼠标功能,也没有图形界面,相关的操作都要通过键盘指令来完成,需要记忆大量命令.因此很多人不大喜欢它,但同时由于键盘的方式往往比鼠 ...

  2. shell编程01—shell基础

    01.学习shell编程需要的知识储备 1.vi.vim编辑器的命令,vimrc设置 2.命令基础,100多个命令 3.基础.高端的网络服务,nfs,rsync,inotify,lanmp,sersy ...

  3. Shell高级编程学习笔记(基础篇)

    目录 1.shell脚本的执行方法  2.shell的变量类型  3.shell特殊变量 4.变量子串的常用操作  5.批量修改文件名实践   6.变量替换 7.在shell中计算字符串长度的方法  ...

  4. UNIX环境高级编程——计算机体系结构基础知识

    无论是在CPU外部接总线的设备还是在CPU内部接总线的设备都有各自的地址范围,都可以像访问内存一样访问,很多体系结构(比如ARM)采用这种方式操作设备,称为等都会产生异常. 通常操作系统把虚拟地址空间 ...

  5. Web3D编程入门总结——WebGL与Three.js基础介绍

    /*在这里对这段时间学习的3D编程知识做个总结,以备再次出发.计划分成“webgl与three.js基础介绍”.“面向对象的基础3D场景框架编写”.“模型导入与简单3D游戏编写”三个部分,其他零散知识 ...

  6. Linux环境高级编程--介绍

    从今天開始.将开启Linux环境高级编程(Advanced Programming Of Linux Enviroment)的学习笔记或者说总结,我将持续和大家分享自己的学习成果.本系列博客依托于li ...

  7. linux高级编程基础系列:线程间通信

    linux高级编程基础系列:线程间通信 转载:原文地址http://blog.163.com/jimking_2010/blog/static/1716015352013102510748824/ 线 ...

  8. Linux C高级编程——网络编程基础(1)

    Linux高级编程--BSD socket的网络编程 宗旨:技术的学习是有限的,分享的精神是无限的. 一网络通信基础 TCP/IP协议簇基础:之所以称TCP/IP是一个协议簇,是由于TCP/IP包括T ...

  9. shell脚本编程基础介绍

    Linux系统——shell脚本编程基础介绍 1.什么是shell 它是一个命令解释器,在linux/unix操作系统的最外层,负责直接与用户对话,把用户的输入解释给操作系统,并处理各种操作输出的结果 ...

  10. javascript高级编程笔记01(基本概念)

    1.在html中使用JavaScript 1.  <script> 元素 <script>定义了下列6个属性: async:可选,异步下载外部脚本文件. charset:可选, ...

随机推荐

  1. Springboot读取Jar文件中的resource

    如题,碰到了问题. 事情是这样的. 一个导入模板, 因为比较少, 所以就直接放在后台的resources中了.调试的时候是下载没有问题的. 等到发布后,下载就出问题了. 参照: ***.jar!\BO ...

  2. MySQL之B+树索引(转自掘金小册 MySQL是怎样运行的,版权归作者所有!)

    每个索引都对应一棵B+树,B+树分为好多层,最下边一层是叶子节点,其余的是内节点.所有用户记录都存储在B+树的叶子节点,所有目录项记录都存储在内节点. InnoDB存储引擎会自动为主键(如果没有它会自 ...

  3. odoo Model字段的参数

    odoo Model字段的参数 class Field(object): """ The field descriptor contains the field defi ...

  4. IIC时序操作24C02芯片

    1.心血来潮看自己能不能参考时序图重新写一个IIC驱动,加强一下时序图的理解.记录下来,以后遇到此类的IIC时序的芯片可以直接操作. 先说说自己参照手册来写AT24c02的IIC低层驱动,从写完到最后 ...

  5. android 调用 screenrecord 实现录屏

    首先要说明的是并未实现,本文讲一下自己的思路. adb 使用shell 命令 screenrecord 可录屏. 自己写了个app,通过Process p = Runtime.getRuntime() ...

  6. OrCAD原理图中怎么导出FPGA的引脚分配

    流程 (1)选择tool下的export FPGA: (2)选择厂商,选择器件型号.选择生成文件类型. 以上.

  7. docker添加阿里云专属镜像

    阿里云镜像地址:https://link.zhihu.com/?target=https%3A//cr.console.aliyun.com/%23/accelerator 根据提示开启容器镜像服务, ...

  8. BZOJ 1010: 玩具装箱toy (斜率优化dp)

    Description P教授要去看奥运,但是他舍不下他的玩具,于是他决定把所有的玩具运到北京.他使用自己的压缩器进行压缩,其可以将任意物品变成一堆,再放到一种特殊的一维容器中.P教授有编号为1... ...

  9. java开发代码中的50个性能优化细节

    在java程序中,性能的大部分原因并不在java与语言,而是程序本身.养成好的编码习惯非常重要,能够显著地提升程序性能. 1:尽量在合适的场合使用单例 使用单利可以减轻加载的负担,缩短加载时间,提高加 ...

  10. Hall定理 二分图完美匹配

    充分性证明就先咕了,因为楼主太弱了,有一部分没看懂 霍尔定理内容 二分图G中的两部分顶点组成的集合分别为X, Y(假设有\(\lvert X \rvert \leq \lvert Y \rvert\) ...