我正在将一些代码从我的主项目转移到一个dll中,以使我的应用程序更具动态性(该dll可以交换为另一个,类似于插件)。我的主项目中的几个子例程被捆绑到dll中的一个子例程中,并且根据从主项目传递的变量来运行不同的代码片段。这反过来是从数据库中选择的,该数据库在加载时由dll更新,从而可以添加全新的功能,而不必安装应用程序的新版本。
现在,除了从调用代码传递到dll中的子例程的参数之外,该子项目中的代码还使用一些公开声明的变量的值,这些变量可以跟踪输入数据的源路径、用户是否对某些对象进行了更改等。在移动代码之前,这些都是在我的主项目的一个模块中声明的。然而,这些值现在是我的dll中的sub所需要的。
我可以将所有这些变量值作为参数传递给dll中的sub,即使它们中的大多数并不是每次调用时都会用到(因为我只使用一个sub来处理dll所做的所有事情)。这似乎是最简单的解决方案。然而,我知道具有类似10+参数的方法被认为是不好的做法。或者,我可以将公共变量移动到接口dll (它已经存在),我的主项目和dll都可以访问和更新那里的值。
就性能而言,哪个是最好的(或最不坏的)?其中一个选择会产生意想不到的后果吗?
发布于 2018-12-14 15:56:10
这给我的印象是你的方法可能会被分享。相反,您应该将这些配置参数传递给对象的构造函数,并将这些值保留为类变量。然后,您的方法可以轻松地从类中获取值。
Class SomeClass
Public Sub New(ByVal someParameter As String)
Me.SomeParameter = someParameter
End Sub
Public ReadOnly Property SomeParameter As String
Public Sub SomeMethod()
' Can use Me.SomeParameter here
End Sub
End Class
https://stackoverflow.com/questions/53781824
复制