using System;
using System.Collections.Generic;
public /*abstract*/ class BaseDBObject
{
public BaseObjectsList<BaseDBObject> ParentList { get; set; }
}
public class BaseObjectsList<T> /* : IEnumerable<T> */ where T : BaseDBObject, new()
{
public List<T> ObjectsList { get; set; } = new List<T>();
public void Fill()
{
ObjectsList.Clear();
ObjectsList.Add(new T());
}
}
public class Smth : BaseDBObject
{
}
public class Test
{
public static void Main()
{
var list = new BaseObjectsList<Smth>();
list.Fill();
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKCnB1YmxpYyAvKmFic3RyYWN0Ki8gY2xhc3MgQmFzZURCT2JqZWN0CnsKCXB1YmxpYyBCYXNlT2JqZWN0c0xpc3Q8QmFzZURCT2JqZWN0PiBQYXJlbnRMaXN0IHsgZ2V0OyBzZXQ7IH0KfQoKcHVibGljIGNsYXNzIEJhc2VPYmplY3RzTGlzdDxUPiAvKiA6IElFbnVtZXJhYmxlPFQ+ICovIHdoZXJlIFQgOiBCYXNlREJPYmplY3QsIG5ldygpCnsKCXB1YmxpYyBMaXN0PFQ+IE9iamVjdHNMaXN0IHsgZ2V0OyBzZXQ7IH0gPSBuZXcgTGlzdDxUPigpOwoKCXB1YmxpYyB2b2lkIEZpbGwoKQogICAgewogICAgICAgIE9iamVjdHNMaXN0LkNsZWFyKCk7CiAgICAgICAgT2JqZWN0c0xpc3QuQWRkKG5ldyBUKCkpOwogICAgfQp9CgpwdWJsaWMgY2xhc3MgU210aCA6IEJhc2VEQk9iamVjdAp7Cn0KCnB1YmxpYyBjbGFzcyBUZXN0CnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkKCXsKCQl2YXIgbGlzdCA9IG5ldyBCYXNlT2JqZWN0c0xpc3Q8U210aD4oKTsKCQlsaXN0LkZpbGwoKTsKCX0KfQ==