1 internal class Node 2 { 3 protected Node m_next; 4 public Node(Node next) 5 { 6 m_next = next; 7 } 8 9 } 10 internal class TypedNode<T> : Node 11 { 12 public T m_data; 13 public TypedNode(T data) 14 : this(data, null) 15 { 16 17 } 18 public TypedNode(T data, Node next) 19 : base(next) 20 { 21 m_data = data; 22 } 23 public override string ToString() 24 { 25 return m_data.ToString() + ((m_next == null ? null : m_next.ToString())); 26 } 27 }
测试代码:
Node head = new TypedNode<Char>('.'); head = new TypedNode<DateTime>(DateTime.Now, head); head = new TypedNode<string>(" Today is ", head); Console.WriteLine(head.ToString());
Codes from <CLR via C# 3>