基类和派生类的转换问题
// 从TreeNode派生的类
[Serializable]
public class SNodeBase : System.Windows.Forms.TreeNode
{
public Guid ID = Guid.Empty;
public SNodeBase() : base() { }
public SNodeBase(string text) : base(text) { }
}
//从前一个类又派生出第二个类
[Serializable]
public class SNode : SNodeBase
{
public string content = "";
public SNode()
{
}
}
// 测试:
SNodeBase node;
SNode n;
node = (SNodeBase)treeView.Nodes[0];// Node[0]的类型是TreeNode。从基类转换成派生类,可以正常转换
n = (SNode)node; //这一句同样是从基类转换成派生类,但运行时出现异常,不能转换,为什么????