我记得遇到过在一个属性中声明多个 Set 处理程序的方法,但现在我不知道它是如何完成的。这很有用,因为可以分配不同的数据类型并且 Set 处理程序进行转换,但我得到了错误
'Set' 已被声明
任何人的想法?
我记得遇到过在一个属性中声明多个 Set 处理程序的方法,但现在我不知道它是如何完成的。这很有用,因为可以分配不同的数据类型并且 Set 处理程序进行转换,但我得到了错误
'Set' 已被声明
任何人的想法?
能同时写这两个就好了
sQuantity = "1234"
和
sQuantity = 1234
有两个 setter 函数,但试图用错误的参数类型编写一个 setter 函数似乎注定要失败:-
error BC31064: 'Set' parameter must have the same type as the containing property.
如果 Visual Basic 不允许在 setter 参数类型和属性类型之间进行转换,那么就不可能有两个 setter 函数。如果 setter 函数被强制与属性具有相同的类型,那么如果有多个,它就无法知道要运行哪个!
所以我会争辩说“这不仅看起来不可能,而且实际上不可能!”
但是,您可以做的是让两个不同类型的属性更改相同的基础变量,以便您可以编写
sQuantityFromString = "1234"
和
sQuantityFromInt = 1234
使用
Public Shared WriteOnly Property sQuantityFromInt () As Integer
使用一个将整数作为参数的 setter 函数,并且使用两个属性 setter 函数修改相同的底层字符串成员变量。
Private Shared m_sQuantity As String = Nothing
据我所知,一个类属性不能有多个 Set 语句。属性不能被覆盖。
您可以使用 setter 函数(这主要是 Java 中的一种范例)并在需要时对其进行重载。然后我还建议将属性设为只读。
另一种选择是将属性定义为对象,并在集合中检查TypeOf
用于设置属性的值并执行您想要的任何业务逻辑。这种方法的唯一问题是您的属性没有类型检查。