C#中is和as用法实例分析
is关键字
is关键字是用来判断某个对象是否是指定类型的实例,如果是则返回true,否则返回false。语法格式如下:
obj is type
其中obj表示需要判断的对象,type表示需要判断的类型。如果obj是type类型的实例,返回true,否则返回false。
示例1:判断对象是否是某个类型的实例
object obj = new Person();
if (obj is Person)
{
Console.WriteLine("obj是Person类型的实例");
}
else
{
Console.WriteLine("obj不是Person类型的实例");
}
示例2:在类的继承关系中判断对象是否是某个类型的实例
class Person {}
class Student : Person {}
Person p = new Student();
if (p is Student)
{
Console.WriteLine("p是Student类型的实例");
}
else if (p is Person)
{
Console.WriteLine("p是Person类型的实例");
}
在示例2中,Person是Student的基类,p是Student类型的实例,但是也可以用is关键字判断p是否是Person类型的实例。
as关键字
as关键字用来进行类型转换,将某个对象转换成指定类型的实例。语法格式如下:
obj as type
其中obj表示需要转换的对象,type表示需要转换成的类型。如果obj能够转换成type类型,则返回type类型的实例,否则返回null。
示例3:将对象转换为指定类型的实例
object obj = new Person();
Person p = obj as Person;
if (p != null)
{
Console.WriteLine("obj转换成功,p是Person类型的实例");
}
else
{
Console.WriteLine("obj转换失败,p是null");
}
在示例3中,将一个object类型的对象转换成了Person类型的实例,如果转换成功,则返回Person类型的实例,否则返回null。
示例4:在类的继承关系中进行类型转换
class Person {}
class Student : Person {}
Person p = new Student();
Student s = p as Student;
if (s != null)
{
Console.WriteLine("p转换成功,s是Student类型的实例");
}
else if (p is Person)
{
Console.WriteLine("p转换失败,s是null");
}
在示例4中,将一个Person类型的实例转换成了Student类型的实例。如果转换成功,则返回Student类型的实例,否则返回null。
总结
is关键字用来判断一个对象是否是指定类型的实例,as关键字用来进行类型转换。在类的继承关系中,这两个关键字也非常有用。以上是关于在C#中is和as用法的实例分析,希望对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#中is和as用法实例分析 - Python技术站