C#中利用as进行接口之间的类型转换
程序员文章站
2022-07-16 09:13:31
...
原理:
当使用不同的接口的时候,就限制调用不同的方法,这也是为了符合接口隔离原则。
由于Dog类实现了两个接口的方法,所以无论使用哪种接口都可以调用接口里面的方法,所以进行转换也就说得通了。
其次,这里特地说明一下,接口类型的变量都是引用变量,要与实例区分开来(new Dog()就是创建了一个实例,而实例的地址存进了eat变量中)。引用变量和实例的类型不同,这也就有了多态。
代码实例:
using System;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
IEat eat = new Dog();
IMove move = eat as IMove;
move.Migrate();
}
}
interface IEat
{
void EatFood();
}
interface IMove
{
void Migrate();
}
class Dog: IEat,IMove
{
public void Migrate()
{
Console.WriteLine("I'm migrating");
}
public void EatFood()
{
Console.WriteLine("I'm Eating food.");
}
}
}
下一篇: C#学习笔记——(10)方法