你好,我有以下问题:
我有一个结构
public struct Cell
{
public Node Value;
public static implicit Cell(Node value)=>new Cell(value); //can't since node less accesible then cell
}
这个结构
Cell
包含类型为的属性
Node
它是一个抽象基类,目前是
internal
所有的派生类。我需要的是
细胞
结构可供其他开发人员访问,以便他们可以提取
结点
却不知道
结点
派生类。
internal abstract class Node{
internal class ANode:Node{
public byte[] internalValue;
}
internal class BNode:Node{
public int internalValue;
}
}
我怎样才能做到这一点?这个
cell
暴露在外部,因此抽象基类
结点
。用户应该能够从
节点
到
细胞
是的。
当前方法
到目前为止,我尝试的是定义一个接口
IRaw
对于
节点
从
节点
派生类。显式实现是一个虚拟方法,在派生类中重载。
interface IRaw{
byte[] GetRaw();
}
internal abstract class Node:IRaw
{
byte[] IRaw.GetRaw()=>this.GetRaw();
protected virtual byte[] GetRaw(){ ....}
}
internal class ANode:Node
{
protected override byte[] GetRaw()
{
.....
}
}
上述方法的问题是我不能通过
伊拉克共和国
作为
细胞
具有错误代码的构造函数:
user defined conversions to or from an interface are not allowed
是的。
public struct Cell
{
public IRaw Value;
public static implicit Cell(IRaw value)=>new Cell(value);
}
有什么建议吗?我真的需要一个
细胞
是公开的
节点
是内在的。