C#类型转换

1.隐式转换:

小的数据类型范围转换为大的数据类型例如

int i=100;

long j=i;

子类转换为基类

2.显示转换

第一种

long j=100;

int i=(int)j;有可能会发生数据的丢失

第二种

通过一些类型自带的方法转换,例如int.Parse( "11");

以上两种方法如果转换的数据不能转换为对应的目标类则在编译的时候会报异常。

所以可以采用以下两种方法判断

int test;

 a.bool result=int.TryParse("asd",out test);

上面的代码不会报异常无法转换时会把int赋值默认的值即test=0。

b.对于引用类型和可为空的类型可以使用as  关键字

Class1 c1=(c1)c2;

以上代码会报异常

应 使用Class1 c1=c2 as Class1;

如果不能正常转换则c1的值为null.

3.装箱和拆箱

装箱就是值类型转换为应用类型

反之为拆箱,也就是栈的数据和堆的数据的相互转换。容易消耗计算机的资源,所以应尽可能的避免装箱和拆箱的操作。

4.Nullrable

可空类型。int?a=3;表示int的数值类型也可以为空。还有一种写法是System.Nullable<int> test2 = 100;

int test=a??500;的用法表示如果a为null则赋值你默认值500。

---像个男人一样去战斗!

原文地址:https://www.cnblogs.com/kkloveit/p/4439328.html