VB.NET如何将类与访问外部函数隔离

VB.NET如何将类与访问外部函数隔离,vb.net,oop,class,module,Vb.net,Oop,Class,Module,我们正在更新一个随着时间的推移变得非常混乱的代码项目。有很多包含公共功能的模块,可以在任何地方使用 我们希望将尽可能多的代码移动到类中,以便这些代码最终可以在下一代应用程序中重用。有没有办法阻止这些类使用任何(非系统)函数 例如: public module annoyingModule public function addOneAndOne() as int return 2 end function .....(load more functions).... end mo

我们正在更新一个随着时间的推移变得非常混乱的代码项目。有很多包含公共功能的模块,可以在任何地方使用

我们希望将尽可能多的代码移动到类中,以便这些代码最终可以在下一代应用程序中重用。有没有办法阻止这些类使用任何(非系统)函数

例如:

public module annoyingModule
 public function addOneAndOne() as int
     return 2
 end function
 .....(load more functions)....
end module

public class pricer
 ...(class code)...
end class

我想确保团队中没有人会意外地引用addOneAndOne函数-如果他们需要来自不属于类的模块的功能,他们需要在新类中重新实现它。

您需要将新类移动到单独的类库项目中。只要您的新类库项目不引用旧项目并且不包含旧模块的副本,所有这些内容都将无法从该类库项目中的类访问。然后,在旧项目中,需要添加对新类库项目的引用。这样,旧代码可以使用新类,但新类将无法使用旧模块。

什么是“在类函数中重新实现它”?另外,您考虑(非系统)函数是什么?我的意思是,他们不需要使用烦扰模块提供的addOneAndOne()函数,而是需要在pricer类中重新实现代码。我想创建一个类,它可以从这个项目中取出并直接用于另一个项目中,因此我不希望它能够访问项目中已经存在的任何模块。为什么不将它们私有化或从代码中完全删除它们呢?我是否遗漏了一些不明显的东西?如果我将它们设置为私有或删除它们,应用程序的整个其余部分将停止运行…我正在与一个团队合作。我想确保其他人不会意外地留下对将来不再可用的函数的引用。我认为可能会有一个类的修饰符,它只允许访问作为.NET framework一部分可用的函数,而不允许访问代码库中的其他公共模块。如果没有,那么就没有,但这并不是一个荒谬的请求,这一定是一个比大多数参与维护混乱代码库的开发人员多年来不得不处理的问题。我感受到了你的痛苦。我自己也遇到过同样的情况。说您可以重写或删除遗留代码并不总是现实的,您所能做的最好的事情就是采取初步的步骤来修复它,至少阻止疯狂传播到新代码中。