动态查找技术,是为了处理其他语言创建的交互技术。使用dynamic关键字修饰
- public class MyClass1
- {
- //参数也可以用dynamic修饰
- public int Add(dynamic var1, dynamic var2) => var1 + var2;//浪漫哒表达式
- }
- public class MyClass2 { }
- public class Program{
- static int callCount = 0;
- static dynamic GetValue() {//动态查找方法
- if (callCount++ == 0)
- {
- return new MyClass1();
- }
- return new MyClass2();
- }
- public static void Main(string[] args){
- try
- {//MyClass2是空的,没有Add方法,此处会出现异常
- dynamic firstResult = GetValue();
- dynamic secondResult = GetValue();
- Console.WriteLine($"{firstResult.ToString()}");
- Console.WriteLine(secondResult.ToString());
- Console.WriteLine(firstResult.Add(2, 5));
- Console.WriteLine(secondResult.Add(2, 5));
- }
- catch (RuntimeBinderException e)
- {
- Console.WriteLine(e.Message); ;
- }
- }
- }