public class CatalogManager<T1, T2, T3> where T1 : ICatalogDataEntryForm<DataEntryControl>, new()
where T2 : ICatalogDataGridForm<DataGridControl>, new()
where T3 : CatalogBusinessObject
public class DataEntryControl
public class DataGridControl
public class CatalogBusinessObject
public class BankDataEntryControl : DataEntryControl
public class BankDataGridControl : DataGridControl
public interface ICatalogDataEntryForm<out T> { }
public interface ICatalogDataGridForm<out T>
public class CatalogDataEntryForm<T> : ICatalogDataEntryForm<T>
public class CatalogDataGridForm<T> : ICatalogDataGridForm<T>
public class BankDataGridForm : CatalogDataGridForm<BankDataGridControl>
public class BankDataEntryForm : CatalogDataEntryForm<BankDataEntryControl>
public class BankManager : CatalogManager<BankDataEntryForm, BankDataGridForm,CatalogBusinessObject>
public static void Main()
Console.WriteLine("Hello World");