我想知道我是如何实现这样的目标的?
Action<int> test = (val) => Console.WriteLine("I am " + val);
Action<object> test2 = (Action<object>) test;
代码:https://dotnetfiddle.net/rZYvLZ
我需要这样做,因为我正在创建一个需要支持许多(数千)Actions委托参数类型的类
答案 0 :(得分:1)
好吧,你可以包装第一个动作:
Action<object> test2 = (object o) => test((int)o);
但我认为这并不需要太多解释,这是一件非常不安全的事情。因此,不是打破类型安全,也许你可以提出一个更好的设计,尊重类型安全。