.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:漫谈平台架构的工作(基础架构、基础服务、基础平台、基础中间件等等)
前言 程序开发毕竟还不是搬砖这种无脑体力劳动,需要事先有标准,有架构,有设计,绝对不是新公司今天创立,明天就可以开始编码的.其实很多公司在起步的时候没有财力和资源建设独立的基础架构或平台架构部门,甚至 ...
随机推荐
- spark随笔
spark基于RDD成功构建起大数据处理的一体化解决方案,将MappReduce.Streaming.SQL.Machine Learning.Graph Processing等 大数据计算模型统一到 ...
- eclipse里报:An internal error occurred during: "Building workspace". Java heap space(内存溢出)
当在eclipse中的web工程中增加了extjs4,出现An internal error occurred during: "Building workspace".Java ...
- 高手养成计划基础篇-Linux第二季
高手养成计划基础篇-Linux第二季 本文来源:i春秋社区-分享你的技术,为安全加点温度 前言 前面我们学习了文件处理命令和文件搜索命令,简单的了解了一下Linux,但是仅仅了解这样还不行,遇 ...
- Hive数据仓库之快速入门
Hive定位:ETL(数据仓库)工具 将数据从来源端经过抽取(extract).转换(transform).加载(load)至目的端的工具,如像:kettle 有关Hive数据导入导出mysql的问题 ...
- Mybatis框架七:三种方式整合Spring
需要的jar包: 新建lib文件夹放入jar包,Build Path-->Add To Build Path之后: 原始Dao开发示例: src下:新建核心配置文件sqlMapConfig.xm ...
- dpkg: 处理软件包 qjackctl (--configure)时出错解决方法
第一步:备份 $ sudo mv /var/lib/dpkg/info /var/lib/dpkg/info.bk 第二步:新建 $ sudo mkdir /var/lib/dpkg/info 第三步 ...
- python通过手机抓取微信公众号
使用 Fiddler 抓包分析公众号 打开微信随便选择一个公众号,查看公众号的所有历史文章列表 在 Fiddler 上已经能看到有请求进来了,说明公众号的文章走的都是HTTPS协议,这些请求就是微信客 ...
- [EXP]Microsoft Windows - DfMarshal Unsafe Unmarshaling Privilege Escalation
Windows: DfMarshal Unsafe Unmarshaling Elevation of Privilege (Master) Platform: Windows (not tested ...
- ajax实现异步前后台交互,模拟百度搜索框智能提示
1.什么是异步?在传统的网站项目中,填写一堆数据,最后点击提交,在点击提交的这一刻才实现数据提交,前后台交互.在你点击提交之前数据是没有提交到后台的.这样就会造成很大的不便.比如,我填了一大堆数据,结 ...
- iReport 5.6.0 安装包下载&安装
iReport 5.6.0 下载 方式有两种: 1.在官网社区上下载,下载地址:https://community.jaspersoft.com/project/ireport-designer/re ...