C#类型介绍与运算注意事项

C#的类型大概分为2种,1种是值类型,1种是引用类型,这里是大概分的,不是详细分的。

值类型(value types)

a值类型的变量直接包含它们的数据;

b每个变量拥有自己的副本,所以对其操作不会影响另一个(except ref 和 out 参数变量)。

类型类别范围大小类型后缀.NET Framework 类型
boolBooleantrue || false   
byte无符号、数值、整数0 ~ 255无符号 8 位整数 System.Byte
char无符号、数值、整数U+0000 ~ U+ffff16 位 Unicode 字符 System.Char
decimal数值、十进制±1.0 × 10-28 ~ ±7.9 × 102828 到 29 位有效位M 或 mSystem.Decimal
double数值、浮点±5.0 × 10-324 ~ ±1.7 × 1030815 到 16 位(精度)D 或 dSystem.Double
enumEnumerationbyte、sbyte、short、ushort、int、uintlong或 ulong   
float数值、浮点±1.5 × 10-45 ~ ±3.4 × 10387 位(精度)F 或 fSystem.Single
int有符号、数值、整数-2,147,483,648 ~ 2,147,483,647有符号 32 位整数 System.Int32
long有符号、数值、整数-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807有符号 64 位整数L 或 lSystem.Int64
sbyte有符号、数值、整数-128 ~ 127有符号 8 位整数 System.SByte
short有符号、数值、整数-32,768 ~ 32,767有符号 16 位整数 System.Int16
struct用户定义的结构构造函数、常量、字段、方法、属性、索引器、运算符、事件和嵌套类型   
uint无符号、数值、整数0 ~ 4,294,967,295无符号 32 位整数U 或 uSystem.UInt32
ulong无符号、数值、整数0 ~ 18,446,744,073,709,551,615无符号 64 位整数UL 或 ulSystem.UInt64
ushort无符号、数值、整数0 ~ 65,535无符号 16 位整数 System.UInt16

引用类型(reference typeset):

a引用类型的变量保存的是它们对数据的引用,也成为对象;

b两个变量完全可能引用同一个对象,所以对一个变量的操作会影响另一个引用此对象的变量。

1class

2委托

3dynamic

4

5object

6string

类型之间的运算细节:

      这里首先要说的就是这个相同类型的运算,例如long/long,int/int等得出的结果是整数,那是因为得出的结果是数学值的舍尾取整(不是四舍五入),如果要得出有尾数的结果必须将一个其中一个数转为float或者double来操作才能得到想要的结果,例如:

int i=1;
int k =2;
double result = (double)i/(double)k

其他的转化的也大同小异,在这里就不一一的去试了。

PS:在转化数据的时候主要注意的是转化的两个数据的精度和范围(上面的表有),例如float转string或者double转float时精度会降低,大范围转小范围,小范围转大范围精度不同等这些都是要注意的;

Ps:在计算金额,或者计算精度或者转化类型的时候,建议用decimal类型来操作,这样可以精确自己要的尾数,不容易出错。

强类型转换和Convert转换的区别;





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值