我想了解是否/何时在代码中使用委托和接口。结构非常简单。主类初始化窗口形式:C#代表和接口如何在此示例中扮演角色
class MainClass
{
public static void Main()
{
InputForm InputForm1 = new InputForm();
InputForm1.ShowDialog(); // show interface to prompt user
}
}
和窗体的类有一个按钮,几个方法:
public partial class InputForm : Form
{
public InputForm()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
// do some calculation and then create a dictionary of items
for (int n = 1; n <= dict.Count; n++) // loop through items
{
dict[n].calculatedLength = theLength.calcLength(arg1, arg2, dict[n].speed);
}
}
}
当单击该按钮,程序会进行一些计算(调用方法在相同的类InputForm中)并将结果保存到字典(dict)中。每个元素都是一种动物,我拥有一些存储在字典中的属性(例如,在“狗”的关键字下,我拥有狗的平均体重,平均速度等)。 使用速度和两个默认参数(arg1表示小时数,arg2表示分钟数)我必须调用类LengthClass的方法才能获得特定动物所覆盖的估计长度arg1小时和arg2分钟。 的LengthClass是这样的:
class LengthClass
{
static double calcLength(double arg1, double arg2, double speed)
{
// do some calculation
return x;
}
}
现在的问题:有没有在这个例子中使用委托和接口的空间?你能告诉我如何最好地做到这一点,这样做有什么优点/缺点,而不是像我在做的那样直接调用calcLength方法?
您具体询问代表和接口,但是考虑问题的上下文我怀疑动机更多的是在单独的线程上获取煅烧以保持表单响应?我的怀疑是否正确? (代表和接口不直接这样做) –
@Stewart_R我想看看我能否更好地设计代码。但是会出现一些新手问题:1)我的LengthClass可以实现一个接口(但是如何最好地做到这一点,这是一个方便的选择?)2)我的方法calcLength()可以委托(但如何最好地做到这一点,它是一个方便的选择?)。 – mickG
@Jon - 我不认为这是落后的。我们经常获得新技术,并想知道如何应用它们。这听起来像OP只是试图学习何时应用代表和/或接口。 – Enigmativity