我有几个地方有 Action<Int32>
, Action<Boolean>
, Action<SomeClassName>
正在使用,但是当涉及到将操作作为类方法中的参数传递时,我无法强制转换 Action<Int32>
或 Action<Boolean>
至 Action<Object>
.
为什么不能用简单的类型转换来完成转换?这个 Actor 有可能吗?最后,如果可能的话,我将如何处理这个类型转换。
最佳答案
因为它会破坏类型安全。
当你声明Action<Int32>
,你说“这是一个需要一个 Int32 参数的委托(delegate)”。
如果这可以直接转换为 Action<object>
, 然后你现在可以用绝对不是 Int32
的东西调用 Action ,例如 DateTime
.在这种情况下,C# 可防止您搬起石头砸自己的脚。
关于c# - 为什么我不能将 Action<Int32> 转换为 Action<Object>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17617170/