我想知道我是如何做到这一点的?
Action<int> test = (val) => Console.WriteLine("I am " + val); Action<object> test2 = (Action<object>) test;
代码: https://dotnetfiddle.net/rZYvLZ
我之所以需要这样做,是因为我正在创建一个类,该类将需要支持许多(数千)操作委托参数类型
好吧,你可以总结第一个动作:
Action<object> test2 = (object o) => test((int)o);
但我认为这不需要太多解释,这是一件非常不安全的事情。因此,与其破坏类型安全性,不如想出一个更好的设计,尊重类型安全性。