.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:漫谈平台架构的工作(基础架构、基础服务、基础平台、基础中间件等等)
前言 程序开发毕竟还不是搬砖这种无脑体力劳动,需要事先有标准,有架构,有设计,绝对不是新公司今天创立,明天就可以开始编码的.其实很多公司在起步的时候没有财力和资源建设独立的基础架构或平台架构部门,甚至 ...
随机推荐
- 谈一款MOBA类游戏《码神联盟》的服务端架构设计与实现(更新优化思路)
注:本文仅用于在博客园学习分享,还在随着项目不断更新和完善中,多有不足,暂谢绝各平台或个人的转载和推广,感谢支持. 一.前言 <码神联盟>是一款为技术人做的开源情怀游戏,每一种编程语言都是 ...
- python 输入一个字符串,打印出它所有的组合
import itertools str = input('请输入一个字符串:') lst = [] for i in range(1, len(str)+1): lst1 = [''.join(x) ...
- Oracle递归查询start with connect by prior
一.基本语法 connect by递归查询基本语法是: select 1 from 表格 start with ... connect by prior id = pId start with:表示以 ...
- Java-redis-雪崩优化
缓存失效的时候如下图: 解决办法"使用互斥锁(mutex key):下面是核心伪代码 v = memcache.get(key); if (v == null) { if (memcache ...
- Ubuntu 16.04 下octave的使用入门
SciLab和octave是开源的且免费的矩阵计算工具,二者都有希望成为矩阵计算的新宠.相比之下, octave与MatLab的兼容性更高. octave遵循GPL协议(GNU General Pub ...
- 使用git在github上创建新工程
这段时间进经常会忘记如何在github上同步工程,于是又得查资料,查参考书,浪费了很长时间,因此有了感触,写几篇有关此类问题的篇章! 这是老手新手都十分容易犯的错误,就是在创建一个新github项目或 ...
- Elasticsearch基础教程分享
基础及相关资料 首先我们先了解一下什么是Elastisearch,Elasticsearch(简称es)是一个基于Lucene库的搜索引擎.它提供了一个分布式.支持多租户的全文搜索引擎,具有HTTP ...
- NIO/BIO
NIO/BIO BIO网络通信 概述 网络编程的基本模型是Client/Server模型,也就是两个进程之间进行相互通信,其中服务端提供位置信息(绑定的IP地 ...
- django —— KindEditor - 跨域上传图片
#跨域上传方法 def frontupload(request): if request.method == 'POST': item = {} file = request.FILES.get('i ...
- (转)pycharm快捷键、常用设置、配置管理
原文: http://blog.csdn.net/pipisorry/article/details/39909057 本博客一直在同步更新中! 内容包含:pycharm学习技巧 Learning t ...