假设我想在Excel VBA中制作一个自行车设计程序。我有一个类对象(
虽然这样做是可行的,但我见过很多人反对使用公共(全局)变量。除了如果你有太多的全局变量,你的代码会变得混乱之外,我不太确定为什么会这样。
或者我可以忘记对象,使用不同表单控件的值,而不是类模块的属性。然而,这似乎是一个有点笨拙的解决方案。
我的问题是:以上哪种解决方案是最好的,如果有的话?如果没有,那我应该怎么办?
更新: 我强烈建议您阅读被接受的答案和dee的帖子。两个答案都有一些很棒的想法,dee的帖子还包含了一些全面的代码示例,可以用于其他类似我的问题的人。
cBike
),其中包含一些默认设置。现在我想制作一个表单(如图所示),用于在将自行车存储到数据库之前更改这些设置。存储的方法(子程序)位于cBike
中。
我可以将对象保存为表单代码中的公共变量,如下所示::
Public objBike As cBike
Public Sub StoreBikeToDatabase()
'database storing code goes here
End Sub
虽然这样做是可行的,但我见过很多人反对使用公共(全局)变量。除了如果你有太多的全局变量,你的代码会变得混乱之外,我不太确定为什么会这样。
或者我可以忘记对象,使用不同表单控件的值,而不是类模块的属性。然而,这似乎是一个有点笨拙的解决方案。
我的问题是:以上哪种解决方案是最好的,如果有的话?如果没有,那我应该怎么办?
更新: 我强烈建议您阅读被接受的答案和dee的帖子。两个答案都有一些很棒的想法,dee的帖子还包含了一些全面的代码示例,可以用于其他类似我的问题的人。
cBike
对象。 - Roryprivate
的cBike
实例,或在显示表单之前传递已经创建的cBike
实例。 - GSergcBike
实例传递给表单,然后该表单会保留该对象,直到需要存储它。在传递给表单之后,cBike
的属性可能会被表单更改,但在存储到数据库之前。 - Jakob Busk Sørensen