c# 类型转换
程序员文章站
2023-12-04 22:12:28
clr允许将一个对象转换为它的实际类型,或者它的基类型。 在c#中,可将一个对象隐式转换为它的基类型,将对象转换成派生类型需要显示转换。例: object o = new...
clr允许将一个对象转换为它的实际类型,或者它的基类型。
在c#中,可将一个对象隐式转换为它的基类型,将对象转换成派生类型需要显示转换。例:
object o = new emplee();
emplee e = (emplee)o;
但是如果将一个对象转换成自己的派生类型是,会运行时报错:
object o = new object();
emplee e = (emplee)o;
所以clr是类型安全的。
c#中is as的操作符用法
在c#语言中,进行类型转换的另一个方式是使用is as操作符。
is:检查对象是否兼容指定对象,返回bool类型。
例:
object o = new object();
bool b1 = (o is object);//true
bool b2 = (o is emplee);//false
is一般的用法:
if(o is emplee)
{
emplee e = (emplee)o;
}
as:目的是简化is的代码写法,同时提升性能,用法:
emplee e = o as emplee;
if(e != null)
{ }
这段代码中,clr核实o是否兼容于 emplee类型,如果兼容就转emplee类型,如果不兼容就返回null。
在c#中,可将一个对象隐式转换为它的基类型,将对象转换成派生类型需要显示转换。例:
object o = new emplee();
emplee e = (emplee)o;
但是如果将一个对象转换成自己的派生类型是,会运行时报错:
object o = new object();
emplee e = (emplee)o;
所以clr是类型安全的。
c#中is as的操作符用法
在c#语言中,进行类型转换的另一个方式是使用is as操作符。
is:检查对象是否兼容指定对象,返回bool类型。
例:
object o = new object();
bool b1 = (o is object);//true
bool b2 = (o is emplee);//false
is一般的用法:
if(o is emplee)
{
emplee e = (emplee)o;
}
as:目的是简化is的代码写法,同时提升性能,用法:
emplee e = o as emplee;
if(e != null)
{ }
这段代码中,clr核实o是否兼容于 emplee类型,如果兼容就转emplee类型,如果不兼容就返回null。