我有以下非常重複的代碼,我想簡化它,但由於NetworkAdapter
對象的屬性在每個事件處理函數上都有所不同,所以我很困難。如何簡化下面的代碼
這樣做的最佳方法是什麼?理想情況下,這應該在沒有lambda表達式的情況下實現,因爲我這樣做的客戶端對C#沒有什麼瞭解,甚至沒有lambda表達式,並且在完成時支持代碼。
private void textBoxNetworkSubnetMask_TextChanged(object sender, EventArgs e)
{
IPAddress.TryParse(textBoxNetworkSubnetMask.Text, out var ipAddress);
((NetworkAdapter)comboBoxNetworkCard.SelectedItem).SubnetMask = ipAddress;
wizardPageNetworkDetails.AllowNext = ValidateNetworkDetailsPage();
}
private void textBoxNetworkGateway_TextChanged(object sender, EventArgs e)
{
IPAddress.TryParse(textBoxNetworkGateway.Text, out var ipAddress);
((NetworkAdapter)comboBoxNetworkCard.SelectedItem).Gateway = ipAddress;
wizardPageNetworkDetails.AllowNext = ValidateNetworkDetailsPage();
}
private void textBoxNetworkPrimaryDns_TextChanged(object sender, EventArgs e)
{
IPAddress.TryParse(textBoxNetworkPrimaryDns.Text, out var ipAddress);
((NetworkAdapter)comboBoxNetworkCard.SelectedItem).PrimaryDns = ipAddress;
wizardPageNetworkDetails.AllowNext = ValidateNetworkDetailsPage();
}
如果它沒有壞掉,請不要修復它。你爲什麼要簡化它?沒有什麼複雜的,如果你的客戶不能理解lambda表達式,他們不太可能理解你用它做的任何事情。 – DavidG
因爲我現在有另外15-20個事件處理程序遭受同樣的問題,並希望簡化它們。 – cogumel0
有代表的字典嗎?一種巨大的'switch' /'case'方法?你的客戶想要什麼? – Sinatr