您好,欢迎访问本站博客!登录后台查看权限
  • 转载文章需要注意是否有转载标识,未经允许谢绝转载
  • 发贴请联系站长提权

C#中C所没有的数据类型

C# adminXiongmao 2019-02-23 195 次浏览 0个评论
网站分享代码

C#虽然和C/C++一样,前面都有C,但事实上是不同的两门语言,与C面向过程不同,C#更像JAVA,面向对象编程,拥有自动的垃圾回收机制。

作为不同的语言,C#会具有一些C没有的数据类型。


1、Decimal

Decimal是一个精度非常高的实数类型,适合财务金融计算,其范围约为(-7.9 x 1028 - 7.9 x 1028) / (100 - 28),拥有28-29个有效位。

decimal的默认值为0.0d。

语法:

decimal 变量名=有小范围内实数;
Decimal 变量名=有小范围内实数;
//decimal是Decimal的别名,如果十分在意性能问题可以使用Decimal,以减轻编译负担。

如果有小数不加m或M会被默认为double类型

例如:

Decimal MyDecimal=300.2m;

如果赋值为十进制整数则不需要在后面加m或M


2、String

C#中拥有字符串类型String,比起C和C++来说更加方便,无需使用Char数组来存储字符串。

string的默认值为null

语法:

string 变量名="内容";
String 变量名="内容";
//string是String的别名,如果十分在意性能问题可以使用String,以减轻编译负担。其余类型也大多如此,后面将不再复述。

例:

String MyString="Hello world";


3、Bool

注:C++中添加了布尔值类型的支持

布尔值类型这个大家应该经常接触到,只有两个值,True和Flase。可以用0代表Flase,0以外的任意实数都代表True。

bool的默认值为Flase。

语法:

bool 变量名=值;

例:

bool MyBool=True;
bool MyBool2=0;
bool MyBool2=1;


4、sbyte和byte类型

sbyte和byte类型都是八位整数,其中sbyte代表signed byte,也就是有符号,byte是无符号。

sbyte 的范围为    -128~127

byte的范围为        0~255

sbyte和byte的默认值均为0。

语法:

sbyte 变量名=整数;
byte 变量名=整数;

例:

sbyte MySbyte=127;
byte MyByte=255;


5、无符号整数类型

除了sbyte类型之外,short、int、long前面加上u,也就是ushort、uint、ulong,代表对应的无符号类型,也就是相当于C语言里的unsigned修饰符。

ushort的范围为     0~2^16-1

uint的范围为         0~2^32-1

ulong的范围为      0~2^64-1

ushort、uint、ulong的默认值均为0.

 语法:

ushort 变量名=值;
uint 变量名=值;
ulong 变量名=值;

例:

ushort MyUshort=5;
uint MyUint=100;
ulong MyUlong=10000;


6、object类型

object和string类型一样都是引用类型,C#中所有数据类型都是由object类型派生出来的。object类型可以引用或指向任意类型,类似C++中的auto类型,但object类型不储存实际数据值,和C语言中的指针一样。

语法:

object 变量名=任意值;

例:

object MyObject=1;
object MyObject2="hello world";
object MyObject3=True;
object MyObject4=3.1415926;

注:由于object是引用类型,因此会进行装拆箱操作,在一定程度上对效率有影响,在可以不使用时尽量避免使用object类型。

已有 195 位网友参与,快来吐槽:

发表评论

分享:

支付宝

微信

站点统计