之前在C#中能够体现多态的地方有重写,重载,显式接口,现在发现用dynamic也可以实现多态:
using System;
namespace PractiseDynamic
{
class Program
{
static void Main(string[] args)
{
DynamicClass theClass = new DynamicClass();
theClass.DynamicMethod(new MyClass1());
theClass.DynamicMethod(new MyClass2());
Console.ReadKey();
}
}
class DynamicClass
{
public void DynamicMethod(dynamic instanceClass)
{
instanceClass.Method();
}
}
class MyClass1
{
public void Method()
{
Console.WriteLine("I'm the instance of MyClass1");
}
}
class MyClass2
{
public void Method()
{
Console.WriteLine("I'm the instance of MyClass2");
}
}
}
本文介绍了一种使用C#中的dynamic类型实现多态的方法。通过动态类型而非传统泛型或接口方式,使得运行时确定具体类型并调用相应方法成为可能。示例代码展示了如何对不同类型实例调用相同名称的方法。
1万+

被折叠的 条评论
为什么被折叠?



