好东西,好东西!!
有些情况下,我们对某些object的来历并不是很清楚,也就不能够肯定它的类型,如果草草对其进行强制转换,一旦类型错误就会导致异常,这里就教大家一招:判断object的类型(事实上是判断object可以转换成的类型)例:
object ob = 0;
if(ob is int)//使用is判断ob是否可以转换成整数类型,因为ob是从整数0来的,
//所以会返回一个true
{
Console.WriteLine("ob可以转换为整数:{0}",(int)ob);
}
else
{
Console.WriteLine("ob不可以转换成整数");
}
//这段代码将输出:ob可以转换为整数:0
现在接上一段代码:
if(ob is long)//判断ob是否可以转换成long类型
{
Console.WriteLine("ob可以转换成long:{0}",(long)ob);
}
else
{
Console.WriteLine("ob不可以转换成long");
}
//因为int和long之间本来就是可以转换的,所以将输出:ob可以转换成long:0
//同样,你对它进行判断是否可以转换成byte等数字类型,所得到的结果都是true
现在,你应该了解如何使用is了吧?
变量 is 类型
"变量"就是你要进行判断的变量,"is"是判断的关键字,"类型"是你要判断变量是否为这个类型,这个判断式将返回true(可以转换)或者false(不能转换)
使用as关键字进行转换动作:
as的性质比较特殊,如果你将以各变量从类型a转换到类型b,只要你使用了as关键字,如果可以转换,它当然会返回一个正确的类型,但是如果不可以转换,它则会返回一个null替代之,也就是说,只要你使用了as关键字,在任何情况下都不会产生异常!
例:
int k = 132;
string s = k as string;//这个地方就是转换的动作了
Console.WriteLine(s);//这里将输出:
换了一行而已啦~
记住as的使用方法:变量 as 类型
“变量”是你要进行转换的变量
“as”是进行转换的关键字
“类型”是你要将变量转换成的类型
使用这个转换式如果转换成功,会返回一个“类型”的变量
如果转换失败,则会返回null
也许现在你不太理解as和is的作用,但是在将来,你一定会认为as和is真的是太有用了!
[此贴子已经被作者于2005-7-13 17:40:01编辑过]