Vb.net 在UI控件中存储值,而不是在单独的变量中存储值?
我可以知道在VB.NET中为控件创建变量的好处吗 例如:Vb.net 在UI控件中存储值,而不是在单独的变量中存储值?,vb.net,winforms,Vb.net,Winforms,我可以知道在VB.NET中为控件创建变量的好处吗 例如: 我使用TextBox.Text访问TextBox值 我声明了一个变量来存储文本框的值。然后,我通过变量访问该值 哪种方法更好、更灵活?两种方法都有效。我个人倾向于后一种情况(独立变量): 有些人不赞成使用文本框等控件作为保存业务数据的单一位置。在实践中,如果在访问值(将字符串表示形式转换为对象)或在显示值时格式化值(将对象转换为字符串表示形式),必须首先解析该值,则这一问题尤其严重。在这种情况下,我将决定将实际值与控件分开存储,这样所有解
TextBox.Text
访问TextBox
值文本框的值。然后,我通过变量访问该值
哪种方法更好、更灵活?两种方法都有效。我个人倾向于后一种情况(独立变量): 有些人不赞成使用
文本框等控件作为保存业务数据的单一位置。在实践中,如果在访问值(将字符串表示形式转换为对象)或在显示值时格式化值(将对象转换为字符串表示形式),必须首先解析该值,则这一问题尤其严重。在这种情况下,我将决定将实际值与控件分开存储,这样所有解析和格式化逻辑都可以集中到一个地方,而不必在整个代码库中重复
另一方面,将值存储在单独的变量中会引入保持该变量与控件同步的需要。这正是有益的。我假设您的问题是关于Windows窗体的,在Windows窗体中,数据绑定有些有限(但通常足够)。但是,如果您的UI基于WPF或Silverlight,那么数据绑定的功能会更强大(例如,它可以通过IValueConverter
自动解析/格式化),并且可以为您节省很多麻烦。(如果您发现数据绑定太复杂,您可以始终手动完成相同的工作,尽管这将意味着订阅大量…已更改的事件。)我将使用文本框。标记property@0699例如我想那是一个可行的办法。在维护期间,它的问题通常会变得很明显,特别是当原始编码人员以外的人接管维护时:标记
属性没有预定义的固定含义,它可以用于任何和所有目的。因此,无论谁查看您的代码,都必须根据类型转换和上下文猜测可能使用了什么Tag
。类似的方法是从例如TextBox
派生并添加一个正确键入的单一用途属性,该属性的名称更容易解释。谢谢你的解释,stakx,我想我理解了。例如,通过TextBox.Text获取的每个值都属于一个字符串,这意味着如果需要将该值用于计算,则需要进行转换。但是,通过使用变量,我可以使用一些事件(如TextChanged event)尝试将值解析为特定格式,并在出现文本更改以进行计算时更新变量。因此,在将来,当我需要进行计算时,我只需要使用变量,而不是再次将TextBox.Text转换为数值。