Dynamic 类型在可以绕过编译器的类型检查,改为在运行时解析。
例:类型A,B都有属性Name,Dodynamic的参数可以是A也可以是B,
o.Name在编译时不会报错,在运行时根据传入的参数(A或B)执行A.Name或者B.Name.
有的朋友可能会说可以让A和B实现一个借口或继承一个基类,这确实也可以,但是我现在在介绍Dynamic。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace dynamic类型 { class Program { static void Main(string[] args) { A a = new A(); a.Name = "dog"; Dodynamic(a); Console.ReadKey(); } private static void Dodynamic(dynamic o) { Console.WriteLine(o.Name); } } public class A { public string Name { set; get; } } public class B { public string Name { set; get; } } }
时间: 2024-12-18 02:36:15