为什么我不能将Action <Int32>转换为Action <Object>?

biz*_*dee 1 c# casting

我有几个地方我都Action<Int32>,Action<Boolean>,Action<SomeClassName>被使用,但是当涉及到传递行动作为参数在一个类的方法,我不能投Action<Int32>Action<Boolean>Action<Object>.

为什么不能使用简单的类型转换来完成转换?这个演员阵容是否可行?最后,如果有可能,我将如何进行此演员表演.

dri*_*iis 10

因为它会打破类型安全.

声明时Action<Int32>,您说"这是一个需要一个Int32参数的委托".

如果这可以直接转换为Action<object>,那么你现在能够用一些绝对没有的东西调用动作Int32,例如a DateTime.在这种情况下,C#会阻止你在脚下射击.