我想了解是否/何時在代碼中使用委託和接口。結構非常簡單。主類初始化窗口形式: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