.NET Framework 平台构造基础
- CLR 公共语言运行库
执行给定编译代码单元所需的外部服务集合,它提供了一个定义明确的运行库层,可以被支持.NET的所有语言和平台所共享。
- 库
- mscoree.dll:公共对象运行库执行引擎
当用户程序引用一个程序集时,这个库将首先自动加载,然后由它负责将需要的程序集导入内存。
- 工作流程

- CTS 公共类型系统
CTS是一个正式的规范,它规定了类型必须如何定义才能被CLR承载。
- 类类型
这是OOP的基础,由成员和数据组成
- 特征
- 是否密封
- 是否实现接口
- 是具体的还是抽象的
- 可见性
- 语法
| class Calc{……} |
- 接口类型
由抽象成员定义所组成的一个具名集合,通过特定的类或结构来实现。
- 语法
| public interface IDraw{void Draw()} |
- 结构类型
可以看做是具有语义的轻量级类类型,适用于建模几何和数学数据
- 语法
| struct Point{……} |
- 枚举类型
是一种便利的编程结构,用来组成名称/值对。
- 语法
| enum CharacterType {Wizard = 100,Thief = 200} |
- 委托类型
等效于类型安全的C风格的函数指针。派生自System.MulticastDelegate类,而不是简单的指向原始内存地址的指针,为.NET事件架构提供了基础。
- 语法
| delegate int BinaryOp(int x,int y); |
- 类型成员
类型成员是集合
- 组成
- 构造函数
- 终结器
- 静态构造函数
- 嵌套类型
- 操作符
- 方法
- 属性
- 索引器
- 字段
- 只读字段
- 常量
- 事件
- 可见性
- 公共的
- 私有的
- 受保护的
- 内建数据类型
| CTS数据类型 | C#关键字 | CLI关键字 | 备注 |
|
System.Byte
|
byte | unsigned char | |
|
System.SByte
|
sbyte | signed char | |
|
System.Int16
|
short | short | |
|
System.Int32
|
int | int or long | |
|
System.Int64
|
long | _int64 | |
|
System.UInt16
|
ushort |
unsigned short
|
|
|
System.UInt32
|
uint |
unsigned int or unsigned long
|
|
|
System.UInt64
|
ulong |
unsigned _int64
|
|
|
System.Single
|
float | Float | |
|
System.Double
|
double | Double | |
|
System.Object
|
object | object^ | |
|
System.Char
|
char | wchar_t | |
|
System.String
|
string | String^ | |
|
System.Decimal
|
decimal | Decimal | |
|
System.Boolean
|
bool | Bool |
- CLS 公共语言规范
它清晰的描述了支持.NET的编译器必须支持的最小的和完全的特征集,可以被基于.NET平台的其他语言用统一的方式进行访问。
- 规则
- 规则1:CLS规则仅适用于类型中向定义它的程序集以外公开的部分。
- BCL 基础类库

.NET Framework 平台构造基础的更多相关文章
- C#语法糖演进-C#语言和.NET Framework平台介绍
p { font-size: 14px; text-indent: 2em } .title { text-indent: 0; font-size: 22px; font-weight: bold; ...
- PHP实现微信公众平台开发—基础篇
PHP实现微信公众平台开发—基础篇 2 1课程介绍 2 2. 微信公众号账号介绍的申请流程详解 2 2.1微信三角色关系 2 2.2信息流的过程 2 2.4微信公众账号的认证 3 2.5订阅号的申请流 ...
- 点菜网---Java开源生鲜电商平台-商品基础业务架构设计-商品分类(源码可下载)
点菜网---Java开源生鲜电商平台-商品基础业务架构设计-商品分类 (源码可下载) 说明:我们搞过电商的人都可以体会到,搞生鲜电商是最复杂的,为什么复杂呢?我总结了有以下几个业务特性决定的: 1. ...
- Java生鲜电商平台-商品基础业务架构设计-商品设计
Java生鲜电商平台-商品基础业务架构设计-商品设计 在生鲜电商的商品中心,在电子商务公司一般是后台管理商品的地方.在前端而言,是商家为了展示商品信息给用户的地方,它是承担了商品的数据,订单,营销活动 ...
- 【原创】C#搭建足球赛事资料库与预测平台(3) 基础数据表设计
本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html 开源C#彩票数据资料库系列文章总目录:http://www.cn ...
- 【云计算】Docker云平台—Docker基础
Docker云平台系列共三讲,此为第一讲:Docker基础 参考资料: Docker官方文档:https://docs.docker.com/ Docker从入门到实践:https://yeasy.g ...
- 中标麒麟龙芯平台--docker基础镜像制作
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源.Docker 的出现为开发人员和运维人员带来了极大的便利.Docker在X86下常见的发行版Linux如Ub ...
- Entity Framework 动态构造Lambda表达式Expression<Func<T, bool>>
using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; us ...
- 朱晔的互联网架构实践心得S2E7:漫谈平台架构的工作(基础架构、基础服务、基础平台、基础中间件等等)
前言 程序开发毕竟还不是搬砖这种无脑体力劳动,需要事先有标准,有架构,有设计,绝对不是新公司今天创立,明天就可以开始编码的.其实很多公司在起步的时候没有财力和资源建设独立的基础架构或平台架构部门,甚至 ...
随机推荐
- PIL库图像处理
PIL有如下几个模块 Image模块.ImageChops模块.ImageCrackCode模块 ImageDraw模块.ImageEnhance模块.ImageFile模块 ImageFileIO模 ...
- JS获取form表单数据
以下代码可放在一个js文件中,以便通用: //获取指定表单中指定标签对象 function getElements(formId, label) { var form = document.getEl ...
- jQuery获取父级、兄弟节点的方法
一.jQuery的父节点查找方法 $(selector).parent(selector):获取父节点 $(selector).parentNode:以node[]的形式存放父节点,如果没有父节点,则 ...
- 转载:Package by feature, not layer
原文地址:Package by feature, not layer Package by feature, not layer The first question in building an a ...
- Akka-CQRS(3)- 再想多点,全面点
上篇我介绍了CQRS模式存写部分的具体实现和akka-persistence一些函数和消息的用法.在这篇本来是准备直接用一个具体的例子来示范CQRS模式编程,主要是写端,或者是数据采集端.想着模拟收银 ...
- 基于TensorFlow的深度学习系列教程 2——常量Constant
前面介绍过了Tensorflow的基本概念,比如如何使用tensorboard查看计算图.本篇则着重介绍和整理下Constant相关的内容. 基于TensorFlow的深度学习系列教程 1--Hell ...
- 《转》studio界面、快捷键
按键 说明 F1 帮助 Alt(Option)+F1 查找文件所在目录位置 Alt(Option)+1 快速打开或隐藏工程面板 Ctrl(Command)+Alt(Option)+ 打开设置对话框 A ...
- IDEA一定要懂的32条快捷键
阅读本文大概需要 2 分钟. 作者:帝都羊 这些IntelliJ IDEA键盘快捷键可以让你专注于编写代码,让你的双手在键盘上起舞. 1.搜索文件名: ↑ Shift 快速连续按两下 2.显示 ...
- java初级笔记
1:java核心优势:跨平台,一次编译,四处运行,只要安装了对应的jvm虚拟机: 2:JVM其实就是一种规范,就是一个虚拟的用于执行bytecode字节码的计算机: 3:数据类型分为四类八种,整数型( ...
- SQL 将查询结果插入到另一张表中
INSERT INTO (1) 如果两张表(导出表和目标表)的字段一致,并且希望插入全部数据,可以用这种方法: INSERT INTO 目标表 SELECT * FROM 来源表 WHERE 条件; ...