C#中AS和IS关键字分别用于类型转换和类型判断。本攻略将详细介绍这两个关键字的语法和用法。
AS关键字
AS关键字用于将一个对象转换成指定类型,如果转换失败则返回null。AS关键字的语法如下:
object as Type
其中,object是待转换对象的名称,Type是目标类型。AS关键字的使用示例如下:
class Animal {
public void Bark()
{
Console.WriteLine("动物叫!");
}
}
class Dog : Animal {
public void SeeMaster()
{
Console.WriteLine("狗看主人!");
}
}
class Program {
static void Main(string[] args) {
Animal animal = new Animal();
Dog dog = animal as Dog;
if(dog != null) {
dog.Bark();
dog.SeeMaster();
} else {
Console.WriteLine("转换失败!");
}
}
}
输出结果为“转换失败!”,因为animal对象不是Dog类型。下面我们将animal对象改为Dog类型,看看输出结果:
class Program {
static void Main(string[] args) {
Animal animal = new Dog();
Dog dog = animal as Dog;
if(dog != null) {
dog.Bark();
dog.SeeMaster();
} else {
Console.WriteLine("转换失败!");
}
}
}
输出结果为“动物叫!狗看主人!”,说明成功将animal对象转换成了Dog类型。
IS关键字
IS关键字用于判断一个对象是否属于指定类型,它的返回值为bool类型。IS关键字的语法如下:
object is Type
其中,object是待判断对象的名称,Type是目标类型。IS关键字的使用示例如下:
class Animal {
public void Bark()
{
Console.WriteLine("动物叫!");
}
}
class Dog : Animal {
public void SeeMaster()
{
Console.WriteLine("狗看主人!");
}
}
class Program {
static void Main(string[] args) {
Animal animal = new Animal();
if(animal is Dog) {
Dog dog = (Dog)animal;
dog.Bark();
dog.SeeMaster();
} else {
Console.WriteLine("不是狗!");
}
}
}
输出结果为“不是狗!”。将animal对象改为Dog类型,看看输出结果:
class Program {
static void Main(string[] args) {
Animal animal = new Dog();
if(animal is Dog) {
Dog dog = (Dog)animal;
dog.Bark();
dog.SeeMaster();
} else {
Console.WriteLine("不是狗!");
}
}
}
输出结果为“动物叫!狗看主人!”,说明animal对象属于Dog类型。需要注意的是,在第二个示例中使用了强制类型转换语法。这也是AS和IS关键字的一个重要区别,AS关键字自带类型转换,而IS关键字需要结合强制类型转换语法才能完成类型转换。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#中AS和IS关键字的用法 - Python技术站