C#初4类型转换


C#的显式和隐式转换

1.显式转换——小转大

2.隐式转换——大转小 

is运算符

s运算符is运算符检查对象类型,在安全类型转换之前进行判断之用。

例如,要检查变量是否与object类型兼容: 注意:“兼容”表示对象是该类型,或者派生于该类型。

object o = "hahaha";
if(o is object)
{
   string s = (string)o;
   Console.WriteLine(s);
   Console.ReadLine();
}

as运算符

as运算符用于执行引用类型的显式类型转换。

如果要转换的类型与指定的类型兼容,转换就会成功进行;

如果类型不兼容,as运算符就会返回值null。

如下面的代码所示:

object o = "hahaha";
object o2 = 1;
string s = o as string;
string s2 = o2 as string;
Console.WriteLine(s);
Console.WriteLine(s2);
Console.ReadLine();
as运算符允许在一步中进行安全的类型转换,不需要先使用is运算符测试类 型,再转换。

C#通过Method和Class进行类型转换

可以让int和string相互转换

string→int

int i = 100;string s = i.ToString(); 转换成string类型

int i = Convert.ToInt32("100");或者是int i = Int32.Parse("100");

或者是

int i;

bool succeed = Int32.TryParse("100",out i);

Console.WriteLine(i);//默认值为0

C#装拆箱和Nullable类型

什么是装箱?

装箱就是值类型转成引用类型

为什么要装箱呢?

为了把值类型转化为引用类型来进行统一操作管理。

如下实例:

[html]  view plain  copy
  1. int i = 3;//值类型的值  
  2. object oi = null;//引用类型对象  
  3. oi = i;//将值类型的值赋给对象  

(装箱是需要消耗内存的,所以能不装箱就不要装箱。)
装箱的本质是什么?

装箱的本质就是在堆上创建了引用类型的副本,新创建的引用类型和原来的值类型相互独立。(并不是真正的装箱,原来的数据都在,只是在堆中创建了引用类型的副本)

什么是拆箱?

拆箱就是装箱的逆操作,就是把引用类型转变成值类型。

[html]  view plain  copy
  1. int i = 3;  
  2. object oi = i;  
  3. int j = (int)oi;  

Nullable类型

Nullable的作用是为了定义一个可以为null的整数值

int? i = null;//定义一个可以为空的int类型的值           

System.Nullable<int> j = 1;//等同于上句
int i2 = i ?? 100; //如果i值不为null,则i2的值为i,否则,i2的值为100
Console.WriteLine(i.HasValue);//空时为false,不空为true
Console.WriteLine(i.GetValueOrDefault());//空时为0,不空时是值
Console.WriteLine(i2);
Console.ReadLine();






猜你喜欢

转载自blog.csdn.net/sndongcheng/article/details/74908409
今日推荐