제네릭도 필요한 조합을 모두 만드는 것보다, 계약하듯히 하면 좋을 것같다.


그러니까 조합을 정하면 생성자는 자동으로 만들어지는거임.



public class Component<ModuleType> where ModuleType : Module
{
public string name;
public string address;
public ModuleType module;
public Component(string name, string address, ModuleType module)
{
this.name = name;
this.address = address;
this.module = module;
}
}
public class Component<ModuleType, ControlType> where ModuleType : Module where ControlType : Control
{
public string name;
public string address;
public ModuleType module;
public ControlType control;
public Component(string name, string address, ModuleType module, ControlType control)
{
this.name = name;
this.address = address;
this.module = module;
this.module = module;
this.control = control;
}
}