编程语言的基元类型

编译器直接支持的数据类型称为基元类型。基元类型直接映射到Framework类库(FCL)中存在的类型。比如在c#中int直接映射到曹衍涛

System.Int32类型.

IL(IL可以指Intermediate Language,同MSIL(Microsoft Intermediate Language),是将.NET代码转化为机器语言的一个中间语言的缩写)

CLS(common language Specification)公共语言规范

下为c#基元类型与对应FCL类型

c#基元类型 FCL类型 CLS相容 说明
sbyte   System.SByte 有符号8位值
byte System.Byte 无符号8位值
short System.Int16 有符号16位值
ushort System.UInt16 无符号16位值
int     System.Int32 有符号32位值
uint System.UInt32 无符号32位值
long System.Int64 有符号64位值
ulong System.UInt64 无符号64位值
char System.Char 16位Unicode字符
float System.Single IEEE32位浮点值
double System.Double IEEE64位浮点值
bool System.Boolean true/false
decimal System.Declmal 128位高精度浮点值
string System.String 一个字符数组
object System.Object 所有类型的基类
dynamic System.Object 对于CLR,dynamic与objecty完全一致

编译器能识别常见的编程模式,生成必要的IL,使代码能像预期工作

c#编译器支持与类型转换、文本常量以及操作符有关的模式

如果转换时安全的(不会丢失数据),c#允许进行隐式转换,若不安全则要求显示转换。比如说Int32转为Int64可以隐式转换,反之需要显示转换。

除了转型,基元类型还能写成文本常量,文本常量可以被看作是类型本身的一个实例。

Console.WriteLine(123.ToString()+123.ToString());//"123123"

checked与unchecked类型操作

对基元类型执行的许多操作都可能造成溢出:

Byte b=100;

b=(Byte )(b+200);//byte取值范围为-128~127

程序员可以在特定的区域用checked与unchecked控制溢出检查

checked操作符

Byte b=100;

b=(Byte )checked(b+200);//不会抛出overflowexception异常

b=checked((Byte )(b+200));//会抛出overflowexception异常

除了chacked和unchecked操作符,c#还支持checked和unchecked语句,他们造成一个块中所有的表达式都进行或者不进行溢出检查。

checked{//开始一个checked模块

Byte b=100;

b+=200;//该表达式会进行溢出检查

}//结束一个checked模块

时间: 2024-08-02 11:01:58

编程语言的基元类型的相关文章

5.1 编程语言的基元类型

编译器直接支持的数据类型成为基元类型(primitive type).基元类型直接映射到 Framework类库(FCL)中存在的类型. int a = 0; // Most convenient syntax System.Int32 a = 0; // Convenient syntax int a = new int(); // Inconvenient syntax System.Int32 a = new System.Int32(); // Most inconvenient syn

CLR via C#深解笔记三 - 基元类型、引用类型和值类型 | 类型和成员基础 | 常量和字段

编程语言的基元类型 某些数据类型如此常用,以至于许多编译器允许代码以简化的语法来操纵它们. System.Int32 a = new System.Int32();  // a = 0 a = 1; 等价于: int a = 1; 这种语法不仅增强了代码的可读性,其生成的IL代码与使用System.Int32时生成的IL代码是完全一致的. 编译器直接支持的数据类型称为基元类型(primitive type).基元类型直接映射到Framework类库(FCL)中存在的类型.如C#中,int直接映射

第五章 基元类型、引用类型 和 值类型

1. 概述 本章讨论MS.NET Framework开发人员经常接触到的各种类型. 2. 名词解释 ① 基元类型:编译器直接支持的数据类型. ② 装箱:将一个值类型转换成一个引用类型. ③ 拆箱:获取已装箱的对象中的各个字段的地址. 3. 主要内容 3.1 编程语言的基元类型 作者建议开发人员开发中使用FCL类型名称,不要使用简化的基元类型名称.原因如下: ① 简化名称的映射容易混淆. ② 不同的编程语言,规则不一. ③ 影响代码的阅读. ④ 时间长了容易忘掉多语言环境的支持. checked

第5章 基元类型、引用类型和值类型

5.1编程语言的基元类型 编译器(Compiler)直接支持的数据类型称为基元类型(primitive type). 我希望编译器根本不要提供基元类型名称,强制开发人员使用FCL(Framework类库)类型名称: 许多开发人员都困惑于到底应该使用string还是String.由于C#的string直接映射到System.String,所以两者是没有区别的.int始终映射到System.Int32,所以不管在什么操作系统上运行,代表的都是32位整数. 5.2引用类型和值类型 虽然FCL中大多数类

基元类型、引用类型和值类型

编程语言的基元类型 编译器直接支持的数据类型称为基元类型.基元类型直接映射到Framework类库(FCL)中存在的类型,比如:int直接映射到System.Int32类型.再比如许多开发人员都困惑到底应该使用string还是String,其实作为基元类型的string也是映射到System.String的,所以两者是没有区别,都可以使用.

checked 和 unchecked 基元类型操作

对基元类型执行的许多算术运算都可能造成溢出: Byte b = 100; b = (Byte) (b + 200); // b 现在包含 44(或者十六进制值 2C) 重要提示:执行上述算术运算时,第一步要求所有操作数都扩大为 32 位值(或者 64 位值,如果任何操作数需要超过 32 位来表示的话).所以, b 和 200(这两个值都不超过 32 位) 首先转换成 32 位值,然后加到一起.结果是一个 32 位值(十进制 300,或十六进制 12C).该值在存回变量 b 之前,必须转型为一个

C#基元类型取值范围对照表

byte   无符号 8 为整数,值为0-255; sbyte   有符号8位整数,-128~127; short   有符号16位整数,范围在-32768~32767 ushort   无符号16位整数 0--32767 int   有符号 32 位整数,-2147483648~2147483647 uint   无符号32位整数,范围在0--2147483647 long   有符号 64位整数,-922372036854775808~~922372036854775807 ulong  

.NET 中,编译器直接支持的数据类型称为基元类型(primitive type).基元类型和.NET框架类型(FCL)中的类型有直接的映射关系.

.NET 中,编译器直接支持的数据类型称为基元类型(primitive type).基元类型和.NET框架类型(FCL)中的类型有直接的映射关系. The primitive types are Boolean, Byte, SByte, Int16, UInt16, Int32, UInt32, Int64, UInt64, IntPtr, UIntPtr, Char, Double, and Single. https://msdn.microsoft.com/zh-cn/library/s

5.基元类型、引用类型和值类型

5.1 基远类型 编译器直接支持的数据类型称为基远类型(primitive type). 以下4行到吗生成完全相同的IL int a = 0; //最方便的语法 System.Int32 b = 0; //方便的语法 int c = new int(); //不方便的语法 System.Int32 d = new System.Int32(); //最不方便的语法 C#基元类型与对应的FCL类型 C#中的基元类型 FCL类型 是否与CLS兼容 描述 sbyte System.SByte N 有符