単一リンクリストを実装しようとしています。次のコードをコンパイルできません。以下のスニペットから、この質問に関係のない多くの不要なコードを削除しました。
public class SinglyLinkedList<T>
{
public SinglyLinkedList()
{
}
private SinglyNode<T> _head = null;
private class SinglyNode<T>
{
public T Data { get; set; }
public SinglyNode<T> Next { get; set; }
}
private class Enumerator<T>
{
public Enumerator(SinglyLinkedList<T> list)
{
_list = list; //#1
_head = list._head; //#2
}
private SinglyLinkedList<T> _list = null;
private SinglyNode<T> _head = null;
}
}
#2 とマークされたステートメントは、エラーで失敗しています -Cannot implicitly convert type 'SinglyLinkedList<T>.SinglyNode<T>' to 'SinglyLinkedList<T>.SinglyNode<T> Program.cs
#1 とマークされたステートメントは #2 と意味的に類似しており、コンパイル中です。プログラムのコンパイルを停止しているのは何ですか? 上記のコードがコンパイルされない原因となっているジェネリック + 内部クラス関連のルールはありますか?
上記のコード スニペットは、車輪の再発明による私の学習の一部であり、製品コードではないことに注意してください。