using System; using System.Collections.Generic; public class Foo { public abstract class Node { } public class ConcatNode : Node { } public Node GetRoot () { return new ConcatNode (); } public void Test (Node root) { ConcatNode concat = root as ConcatNode; Console.WriteLine (concat); } } class X { public static void Main () { Foo foo = new Foo (); Foo.Node root = foo.GetRoot (); foo.Test (root); } }