C#中is与As运算符号的使用详解
using System;
using System.Collections.Generic;
using System.Text;
namespace ConsoleApplication1
{
class IsOrAsClass
{
class Animal
{
public void Eat()
{
Console.WriteLine("Eating...");
}
public override string ToString()
{
return "I am Eating";
}
}
//家禽类
class jia:Animal
{
}
//狗
class Dog : jia
{
}
//鸟
class bird
{
}
static void Main()
{
IsOrAsClass app=new IsOrAsClass();
//
Dog d=new Dog();
app.UseIsOpreate(d);
app.UseAsOpreate(d);
//
bird b = new bird();
app.UseAsOpreate(b);
}
//使用Is运算符
void UseIsOpreate(Animal a)
{
if (a is jia)
{
jia j = (jia)a;
j.Eat();
}
}
//使用AS运算符
void UseAsOpreate(object o)
{
jia j = o as jia;
if (j != null)
{
Console.WriteLine(j.ToString());
}
else
{
Console.WriteLine("{0} is not Animal", o.GetType().Name);
}
}
}
}