1 public class RuleBuilder<T> where T : class {} 2 3 public interface IDynamicObject { 4 RuleBuilder<T> GetRule<T>() where T : class; 5 } 6 7 public class RubyMethod : IDynamicObject { IDynamicObject.GetRule()8 RuleBuilder<T> IDynamicObject.GetRule<T>() /* where T : class */ { 9 return new RuleBuilder<T>(); 10 } 11 } 12 13 public class T { Main()14 public static void Main () 15 { 16 } 17 } 18