【发布时间】:2015-11-17 06:13:53
【问题描述】:
我刚刚开始使用 C#,希望您能帮助我选择传递值的最佳方式。我正在做一个在 Visual Studio 中构建计算器的练习。单击按钮后,我需要传递/获取值。
我可以看到一种(草率?)方法是为每个按钮的单击事件创建代码。这样做,我可以确定按下了哪个按钮......然后可以调用一个方法并将一个硬编码的参数传递给它,指示按钮的值。例如,按下一个按钮时的“BtnEntry_Click(1)”。
另一种方法是获取发送者的姓名,然后使用 switch 语句检查按钮的名称并分配值。例如:
private void BtnEntry_Click(object sender, RoutedEventArgs e)
{
var buttonClicked = sender as Button;
switch (buttonClicked.Name)
{
case "btnOne":
// The one button was pressed, so pass 1
break;
case "btnTwo":
//The two button was pressed, so pass 2
break;
//etc .....
}
}
第三种选择是将值放入按钮的标签属性中,然后从那里抓取它。
还有其他使用 RoutedEventArgs 的选项吗?如果可以,能否提供示例代码?
上述选项中有没有最好的方法...或者有更好的方法吗?
谢谢!
注意:一位编辑指出,这个问题与this question 上发布的问题有关。我觉得这是一个更广阔的视野,解决了更多潜在的解决方案,也更容易让像我这样的“菜鸟”理解。另一个问题是关于绑定代码的,这对我来说是一个无益的答案。
然而,我确实遇到了关于命令的this answer,它扩展了 Drew Noakes 和 kidsshaw 提供的想法。 (谢谢!)
因此,我建议将此问题作为一个单独的问题保留,因为它提供了比其他问题更容易的切入点,并且还提供了更多选项。
【问题讨论】:
-
看看使用带有数字按钮的命令,并将值作为命令参数传递。有很多方法可以做你想做的事,但我可能会使用命令参数。
-
根据我的回答,我同意 Drew。