bsh*_*52s 1 c# generics casting
我定义了以下类来进行验证:
public class DefValidator : IValidate<IDef>
{
}
public interface IDef : IAttribute
{
}
Run Code Online (Sandbox Code Playgroud)
然后,我有一个定义如下的验证器列表:
IList<IValidate<IAttribute>> ValidationObjects;
Run Code Online (Sandbox Code Playgroud)
当我尝试以下内容时,它不会编译说它无法转换类型.
DefValidator defv = new DefValidator();
ValidationObjects.Add(defv);
Run Code Online (Sandbox Code Playgroud)
当我尝试以下操作时,它会编译但会生成一个异常,说"无法投射对象".
ValidationObjects.Add((IValidate<IAttribute>)defv);
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
| 归档时间: |
|
| 查看次数: |
772 次 |
| 最近记录: |