【发布时间】:2017-11-11 20:18:38
【问题描述】:
我有一个带有Control 参数的方法。我想获得控件的值。所以如果是TextBox,则获取Text属性的值;如果是NumericUpDown,则获取Value 属性的值,依此类推。
问题是我不能写这样的东西:
Method(Control control)
{
control.Text;
}
或
Method(Control control)
{
control.Value;
}
因为无法保证控件具有这些属性之一,如果确实具有它,它的名称是什么。 有没有办法做这样的事情?
【问题讨论】:
-
C# 中有
if (foo is TextBox)...构造...如果没有看到当前代码和改进方向,很难看出你想用它走多远。 -
@AlexeiLevenkov - 好吧,我不确定究竟有什么解决方案。我确实尝试了您建议的
if声明,但它并不优雅。我想也许Control里面有一些属性,它指的是保存值的属性或类似的东西。我找不到任何方法,但我想也许还有其他方法。 -
控件类中没有这样的属性。