我是 C# 泛型的新手,所以请多多包涵。我想将(比如说)NodeRef 类型的对象转换为 NodeRef<TNode>。是否可以?如果,是,如何?目前这就是我所拥有的
public class Program
{
static void Main(string[] args)
{
var nodeRef = new NodeRef();
var newNodeRef = (NodeRef<MyNode>) nodeRef;
//above line throws up at Runtime.
}
}
public class NodeRef
{
private int id;
}
public class NodeRef<TNode> : NodeRef
{
private TNode tNode;
public void Print()
{
Console.WriteLine(tNode.ToString());
}
}
我目前收到此异常:System.InvalidCastException。
编辑:
但是,为什么它不会引发编译时错误?MyNode 只是一个虚拟类
public class MyNode
{
public int Id { get; set; }
public string Name { get; set; }
}