我有一个定义如下的类:
class ProxyWithSetter<T> : ProxyValue where T : Value
它有一个类型的字段
Action<T> Setter;
假设我有一个ProxyValue
实例列表,其中一些也是ProxyWithSetter
,我怎样才能将一个类型为 的子类的对象传递给我确定为 aValue
的那些 s 之一?ProxyValue
ProxyWithSetter
这里的问题是我需要将其中一个ProxyValue
s 转换为 a ProxyWithSetter
,但转换还需要一个类型参数。我无法提供,因为我要传递给函数的对象的确切类型在编译时是未知的。我只知道它应该是 的子类型Value
。
基本上,我想这样做
(p as ProxyWithSetter<Value>).Setter(val);
强制转换返回 null 因为p
它不是 type ProxyWithSetter<Value>
,但是没有办法知道它的确切类型。我也不知道. val
只知道它确实是一个Value
.
我可以理解为什么它不起作用。我只是在寻找可行的解决方法。