栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

《C#本质论 7.0》读书笔记

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

《C#本质论 7.0》读书笔记

  1. 字符串不可变
    所有string类型的数据,不管是不是字符串字面值,都是不可变的。也就是说,不能修改变量最初引用的数据,只能重新赋值,让它指向内存中的新位置。

  2. 托管执行和CLI
    处理器不能直接解释程序集。程序集是公共中间语言(Common Intermediate Language, CLI)又称中间语言(IL)或Microsoft IL (MSIL)。C#编译器将C#源代码文件转换成中间语言。
    为了将CIL代码转换成处理器能理解的机器码,还要完成一个额外的步骤(通常在运行时进行)。该步骤涉及C#程序执行的一个重要元素:VES(Virtual Execution System,虚拟执行系统)。VES也称为运行时(runtime)。它根据具体需要来编译CIL代码,这个过程称为即时编译或JIT编译(just-in-time compilation)。
    如果代码在像“运行时”这样的一个“代理”的上下文中执行,就称为托管代码(managed code),在“运行时”的控制下执行的过程称为托管执行(managed execution)。之所以称为“托管”,是因为“运行时”管理着诸如内存分配、安全性和JIT编译等方面,从而控制了主要的程序行为。
    执行时不需要“运行时”的代码称为本机代码(native code)或非托管代码(unmanaged code)。

  3. C#的数据类型
    C#有大量类型,而且可合并类型来创建新类型。但C#有几种类型非常简单,是其他所有类型的基础,它们称为预定义类型(predefined type)或基元类型(primitive type)。
    C#语言的基元类型包括八种整数类型、两种用于科学计算的二进制浮点类型、一种用于金融计算的十进制浮点类型、一种布尔类型以及一种字符类型。

  4. 八种整数类型

类型大小范围BCL名称后缀
sbyte8位-27~27-1System.SByte
byte8位0~28-1Sytem.Byte
short16位-215~215-1System.Int16
ushort16位0~216-1System.UInt16
int32位-231~231-1System.Int32
uint32位0~232-1System.UInt32U或u
long64位-263~263-1System.Int64L或l
ulong64位0~264-1System.UInt64UL或ul
  1. 两种用于科学计算的二进制浮点类型(了解完浮点数存储回来补全)
类型大小范围BCL名称有效数位后缀
float32位System.SingleF或f
double64System.DoubleD或d
  1. 一种用于金融计算的十进制浮点类型(了解完浮点数存储回来补全)
类型大小范围BCL名称有效数位后缀
decimal128位System.DecimalM或m
  1. 一种布尔类型
类型大小取值BCL名称
bool一个字节true、falseSystem.Boolean
  1. 一种字符类型
类型大小取值BCL名称
char16位0~216-1System.Char

取值范围对应于Unicode字符集。

  1. 字符串
  • 零或多个字符的有限序列称为字符串。
  • string是一种“不可变”类型。
  • 逐字字符串,符号@。以@开头的字符串唯一支持的转义序列是“”,代表一个双引号,不会终止字符串。
  • C#不自动连接字符串字面值。必须用+操作符连接(但如果编译器能在编译时计算结果,最终的CIL代码将包含连接好的字符串)。
  • 假如同一字符串字面值在程序集中多次出现,编译器在程序集中只定义字符串一次,且所有变量都指向它。这样一来,假如在代码中多处插入包含大量字符的同一字符串字面值,最终的程序集只反映其中一个的大小。
  • 字符串插值,符号$。逐字和插值可组合使用,但$要在@之前。字符串插值是调用string.Format()方法的语法糖。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/955622.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号