我需要一个按钮来启动GetShortestPath()
功能。不幸的是,该函数有一个通用的<T>
并且需要拥有它,当我尝试在Forms1
中声明泛型时,它会在InitializeComponent
中出错:
InitializeComponent在当前上下文中不存在
是否有解决方法让该功能与<T>
一起使用?
public partial class Form1<T>: Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
ICalculatePath calculatePath = new Model.CalculatePath<T>();
calculatePath.GetShortestPath();
}
}
谢谢
答案 0 :(得分:0)
我相信这个问题正在发生,因为你正在制作这个类Generic,而不是由VS处理并由系统生成的自动生成的类。 InitializeComponent
在另一个文件中定义。
更好的设计是将ICalculatePath
传递到您的Form类中,无论是在自定义构造函数中还是作为属性。后者更好。即使使用事件并让父句处理它也许是一种更好的方法。如果不了解您的系统架构师和设计,就无法发表更多评论。