私は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; }
}