namespace A { public partial class B { public partial class C { public class A { } } } } namespace A { public abstract partial class B where T : B.C { } } namespace A { public partial class B { public partial class C : I { } } } namespace A { public interface Ibase { } public partial class B { public interface I : Ibase { } } } namespace A { class Bar : B.C { } public class Test { public static void Main () { Ibase b = new Bar (); System.Console.WriteLine (b != null); } } }