C#异类调用action
时间: 2023-11-29 16:47:18 浏览: 35
根据提供的引用内容,我们可以了解到C#中的异类调用action是指将子类对象转换为父类对象后,再调用子类对象中的方法。具体实现可以使用上溯造型来实现。下面是一个简单的示例代码:
```csharp
using System;
public class Animal
{
public virtual void Eat()
{
Console.WriteLine("Animal is eating.");
}
}
public class Cat : Animal
{
public override void Eat()
{
Console.WriteLine("Cat is eating.");
}
public void Meow()
{
Console.WriteLine("Meow!");
}
}
class Program
{
static void Main(string[] args)
{
Animal animal = new Cat();
animal.Eat(); // 输出:Cat is eating.
if (animal is Cat)
{
Cat cat = (Cat)animal;
cat.Meow(); // 输出:Meow!
}
}
}
```
在上面的示例代码中,我们定义了一个Animal类和一个Cat类,Cat类继承自Animal类。在Main方法中,我们创建了一个Cat对象,并将其赋值给一个Animal类型的变量。然后我们调用了这个变量的Eat方法,由于Cat类重写了Animal类的Eat方法,所以输出的是"Cat is eating."。接着我们使用is关键字判断这个变量是否是Cat类型,如果是,则将其转换为Cat类型,并调用Cat类中的Meow方法。