邢台医院网站建设,广告艺术设计学的是什么,野花免费资源观看,网站建设类公前几篇文章中经常说到强制类型转换#xff0c;就是可以将派生类对象强制转换为基类对象的做法或者通过as运算符进行的转换。今天我们就来一起简单了解复习下在C#中都有哪些类型的转换。要理解转换很容易#xff0c;日常的开发编码过程中#xff0c;由于变量类型的不同我们可… 前几篇文章中经常说到强制类型转换就是可以将派生类对象强制转换为基类对象的做法或者通过as运算符进行的转换。今天我们就来一起简单了解复习下在C#中都有哪些类型的转换。要理解转换很容易日常的开发编码过程中由于变量类型的不同我们可能会根据业务的变更会进行变量值之间的转换。这里就会出现类型转换。比如Int型变量转换为String类型等等。这里转换是接受一个类型的值并使用它作为另一个类型的等价值的过程转换后的值应和源值一样。如下就是典型的强制类型转换short temp 5;sbyte tempTwo 20;tempTwo (sbyte)temp;类型转换在进行数据转换的过程中很多时候会存在数据精度丢失的问题比如在和下位机进行通信的过程中可能两者通过固定协议来传输和解析字段这时候对于数据精度的关注就特别重要不可出现转换不对的问题。比如协议里面某字段要求是8字节的double类型你在转换的过程中不能转换为4字节的float。但是在进行转换的过程中有些类型就不会丢失数据和精度比如将8位的值转换为16位值数据。这就是所谓的隐式转换。语言在使用过程中编译器会自动进行转换。当从位数更少的源转换为位数更多的目标类型时目标中多出来的位需要用0或1填充当从更小的无符号类型转换为更大的无符号类型时目标类型多出来的最高位都以0进行填充也就是所谓的零扩展。对于有符号的类型的转换而言额外的高位用源表达式的符号位进行填充。这里既然有隐式转换和强制类型转换那么也就会有显示转换。比如我们想将短类型转换为长类型在长类型里面很容易放下短类型的值但是如果反过来这里就会出现问题。在短类型中无法放下所有长类型的内容就会出现数据或精度的丢失。下面是C#中各个类型的字节长度1) bool, System.Boolean 类型它用于声明变量来存储布尔值 true 和 false。
2) sbyte, System.SByte 类型最小值为-128最大值为127可显示转换为 int、long、double、float、decimal 类型。
3) byte, System.Byte 类型最小值为0最大值为255可显示转换为 int、long、double、float、decimal 类型。
4) short, System.Int16 类型最小值为-32768最大值为32767可显示转换为 int、long、double、float、decimal 类型。
5) ushort, System.UInt16 类型最小值为0最大值为65535可显示转换为 int、long、double、decimal、float 类型。
6) int, System.Int32 类型最小值为-2147483648最大值为2147483647可显示转换为 long、double、decimal、float 类型。
7) uint, System.UInt32 类型最小值为0最大值为4294967295声明 uint 类型变量使用后缀 u或U可显示转换为 long、double、decimal、float 类型。
8) long, System.Int64 类型最小值为-9223372036854775808最大值为9223372036854775807L声明 long 类型变量使用后缀 l或L可显示转换为 double、decimal、float 类型。
9) ulong, System.UInt64 类型的最小值为0最大值为18446744073709551615声明 long 类型变量使用后缀 ul或UL可显示转转为 double、decimal、float 类型。
10) float, System.Singe 类型最小值为-3.4 × 1038最大值为3.4 × 1038表示存储32位浮点值的简单类型声明 float 类型变量使用后缀 f或F可显示转换为 double 类型转为 int、long、decimal 类型需隐式转换。
11) double, System.Double 类型最小值为±5.0 × 10−324最大值为±1.7 × 10308表示存储64位浮点值的简单类型声明 double 类型变量使用后缀 d或D换为 int、long、float、decimal 类型需隐式转换。
12) decimal, System.Decimal 类型的大致范围(-7.9 x 1028 - 7.9 x 1028) / (100 - 28)表示128位数据类型同浮点型相比decimal 类型具有更高的精度和更小的范围这使它适合于财务和货币计算声明 decimal 类型变量使用后缀 m或M转为 int、long、double、float 类型需隐式转换。
13) char, System.Char 类型范围U0000 到 UFFFF用于声明 .NET framework 使用Unicode字符表示 System.Char 结构的实例可显示转换为 short、int、long、float、double、decimal 类型。转为 string 类型需使用 ToString() 方法。
14) enum, System.Enum 类型一种由一组称为枚举数列表的命名常量组成的独特类型。
15) struct 类型通常用来封装小型相关变量组例如矩形的坐标或库存商品的特征。在C#中会经常使用Convert类下的方法进行类型之间的转换工作。int ahui27;string age Convert.ToString(ahui);double ageTwo Convert.ToDouble(ahui);Single ageThreeConvert.ToSingle(ahui);隐式引用转换所有引用类型可以被隐式转换为object类型任何类型可以隐式转换到它继承的接口类可以隐式转换到继承链的任何类或它实现的任何接口显示引用转换从object到任何引用类型的转换从基类到从它继承的类的转换装箱和拆箱装箱指在C#的转换过程中值类型到引用类型的转换过程称为装箱。拆箱指将装箱后的对象引用类型转换到值类型的过程。装箱是一种隐式转换它接受值类型的值根据这个值在堆上创建一个完整的引用类型对象并返回对象引用。//int 为值类型 string为引用类型
int ahui;
string age;ahui27;
//装箱操作
age Convert.ToString(ahui);
//拆箱操作
ahui Convert.ToInt32(age);寄语人生短暂我不想去追求自己看不见的我只想抓住我能看得见的。原创不易给个关注。我是阿辉感谢您的阅读如果对你有帮助麻烦点赞、转发 谢谢。往期推荐C#中的协变和逆变C#中泛型约束的具体用法C#中泛型的用法C#中的泛型