我有2个班级,来自2个项目:生产和测试。
BinaryTreeNode
-来自基础项目,我无法更改。
TreeNode
-来自一个测试项目,我可以更改。
我想在测试项目中互换使用这些类,并毫无问题地从一个转换为另一个(或至少从BinaryTreeNode转换为TreeNode)。我可以在C#中执行此操作吗?如果是,怎么办?因为如果我推导它不起作用(创建为BinaryTreeNode / base的对象不能强制转换为TreeNode /派生)。由于无法使用相同类型的道具,因此无法使用强制转换运算符。有想法吗?
public class BinaryTreeNode {
public BinaryTreeNode(int key) {
this.Key = key;
this.Color = 0;
}
public int Key { get; set; }
public BinaryTreeNode Left { get; set; }
public BinaryTreeNode Right { get; set; }
public BinaryTreeNode Parent { get; set; }
/// <summary>
/// 0 = Red
/// 1 = Black
/// </summary>
public Color Color { get; set; }
/// <summary>
/// AVL Balance item
/// </summary>
public int Balance { get; set; }
}
public class TreeNode {
public int val;
public TreeNode left;
public TreeNode right;
public TreeNode(int x) { val = x; }
}