在dll(vb.net)中调用方法时传递参数与公共变量

在dll(vb.net)中调用方法时传递参数与公共变量,vb.net,parameters,global-variables,Vb.net,Parameters,Global Variables,我将一些代码从我的主项目移动到一个dll中,以使我的应用程序更具动态性(dll可以交换为另一个,类似于插件)。我的主项目中的几个子例程已绑定到dll中的一个中,并且根据从主项目传递的变量运行不同的代码段。这又是从数据库中选择的,该数据库在加载时由dll更新,从而可以添加全新的功能,而无需安装新版本的应用程序 现在,除了从调用代码传递到dll中的子例程的参数外,该子例程中的代码还使用一些公开声明的变量值,这些变量跟踪输入数据的源路径、用户在移动代码之前是否对某些对象进行了更改等,这些是在我的主要项

我将一些代码从我的主项目移动到一个dll中,以使我的应用程序更具动态性(dll可以交换为另一个,类似于插件)。我的主项目中的几个子例程已绑定到dll中的一个中,并且根据从主项目传递的变量运行不同的代码段。这又是从数据库中选择的,该数据库在加载时由dll更新,从而可以添加全新的功能,而无需安装新版本的应用程序

现在,除了从调用代码传递到dll中的子例程的参数外,该子例程中的代码还使用一些公开声明的变量值,这些变量跟踪输入数据的源路径、用户在移动代码之前是否对某些对象进行了更改等,这些是在我的主要项目的一个模块中声明的。但是,现在我的dll中的子对象需要这些值

我可以将所有这些变量值作为参数传递给dll中的sub,即使不是每次调用时都使用它们(因为dll所做的每件事我只使用一个sub)。这似乎是最简单的解决方案。然而,我知道拥有10个以上参数的方法被认为是不好的做法。或者,我可以将公共变量移动到接口dll(已经存在)中,我的主项目和dll都可以访问并更新其中的值


就性能而言,哪一个最好(或最不坏)?其中一个选择会产生意想不到的后果吗?

这给我的印象是,您的方法可能会被共享。您应该将这些配置参数传递给对象的构造函数,并将这些值保留为类变量。然后,您的方法可以很容易地从类中获取值

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

这给我的印象是,你的方法是共享的。您应该将这些配置参数传递给对象的构造函数,并将这些值保留为类变量。然后,您的方法可以很容易地从类中获取值。当有人告诉您时,这是显而易见的。谢谢