c# - 无隐式引用转换
问题描述
我有一个公共接口,它控制实现它的对象是否应该可见。基本结构如下所示:
public interface IPreviewObject
{
bool Hidden { get; set; }
}
然后,我有一个实现这个接口的类(以及其他一些接口)
public abstract class MyParameter<T> : Param<T>, IParameter where T : class, IPreviewObject
{
protected MyParameter(string name)
: base(name)
{
}
private bool m_hidden = false;
public bool Hidden
{
get { return m_hidden; }
set { m_hidden = value; }
}
}
最后,我有第二个类,它继承自MyParameter类,如下所示:
public sealed class MyComponent : MyParameter<SpecialType>
{
public MyComponent ()
: base("My Component Name")
{
}
}
但是,我的第二个类MyComponent的定义出现错误,它说没有从 SpecialType 到 IPreviewObject 的隐式引用转换。如果我从 MyParameter 定义中删除IPreviewObject,则相同的代码可以正常工作。但是,当我尝试添加IPreviewObject继承时,出现此错误。谁能解释为什么?或者如何解决这个问题?
解决方案
SpecialType 应该实现接口 IPreviewObject
public class SpecialType : IPreviewObject
{
public bool Hidden { get => throw new NotImplementedException();
set => throw new NotImplementedException(); }
}
推荐阅读
- postgresql - Mybatis Generator Postgres 返回 created id 支持
- xml - 更新子节点及其属性信息 - Powershell
- javascript - 在检查 javascript 数组中的重复值并忽略其中一些重复值时,我的代码出现问题
- swift - 升级 MacO 和 Xcode 时 Carthage 更新失败,退出代码为 1
- angular - 从另一个文件中的组件调用位于 Ionic Angular 页面上的函数
- firebase - 使用 setData 的 Firestore fieldvalue.increment 不会增加值,而 updateData 会
- javascript - 如何以格式('Y-MM-DD')从日期选择器角度材料格式化日期?反应形式
- python - 如何在 Python 中编写过滤函数
- r - 尝试创建差异矩阵时如何处理数据集中的零?
- python - 将列表转换为字符串的两种不同方法的 CPU 使用率