当然。在Visual Studio中的解决方案中,您可以添加一个类库项目并将其填入所需的所有可重用代码。然后,解决方案中的任何项目都可以通过向该项目添加项目引用来引用它。
请注意,这样的事情很容易出问题。举个例子,你的例子:
MessageBox.Show("Hi");
MessageBox
类紧密耦合到用户界面。所以它属于的用户界面对象。 (这种情况下的形式)。这是因为如果你尝试在类库中使用它,那么你需要将用户界面库添加到该类库中,从而使它与该特定的用户界面实现更加紧密地结合。这使得类库的便携性更低,并且可重用性更低,因为它可以用只有被相同用户界面技术的项目使用。 (例如,Web项目无法使用。)
因此,您需要考虑将每个常用工具封装到自己的可重用代码中。它是否属于用户界面,业务对象,数据访问等?如果它与特定的外围技术(用户界面技术,数据访问技术等)紧密结合,那么它可能属于那里。
一种方法是拥有多个“通用工具”库。使用人为的命名方案,大型企业域解决方案可能有项目是这样的:
- Domain.BusinessLogic(类库,通过一切引用)
- Application.Forms.AdminPanel(窗体应用程序)
- 应用.Forms.OperationsPanel(表单应用程序)
- Application.Forms.Common(类库,由其他Forms应用程序引用)
- Application.Web。PublicWebsite(Web应用程序)
- Application.Web.Common(类库,其他Web应用程序中引用)
- Infrastructure.DataAccess.SQLServer(类库,依赖注入到域)
- Infrastructure.Vendor.SomeService (类库,依赖注入到域)
- 等
所以,你有一个核心业务逻辑的项目,其中包含任何的普遍到您正在使用的所有业务领域。它应该有没有依赖关系。 (不依赖于用户界面,数据库,框架等)然后你有各种技术的应用程序,其中混合类库具有应用程序耦合的通用功能。最后你还有域的其他外围,即后端依赖。这些可能是您的数据访问层,与第三方系统和服务的集成等。
由于任何给定的功能都被抽象为一个通用工具来减少重复和增加重复使用,请注意保持代码 - 低耦合,所以“常用工具”不紧密地束缚于“不常见的依赖”。业界经常会发现与代码重用的紧密耦合增加。 (请参阅Single Responsibility Principle。)因此,请谨慎行事以避免发生。
如果它服务于多个责任并且不应该混合这些责任,那么编写同一段代码(单独由按键代替“不变”,不一定以概念为目的)不会有一次固有错误。
但是,静态方法属于一个组或创建一个新的文件,在C#项目解决方案? – 2013-04-24 22:49:50
@NicholasMordecai你可以创建一个新文件,虽然没有什么能够阻止你将多个类放入一个单独的文件中,并且对于小而紧密相关的类在单个文件中是相当常见的做法(在c/C++中定义更是如此) 。 – evanmcdonnal 2013-04-24 22:52:15
如果需要,可以将静态方法添加到现有类中,这取决于它是否适合该类。至于新的静态类 - 你有权将它放在现有的文件或新的文件中 - 编译器不关心,只要这个类的命名空间可以访问调用者。 – 2013-04-24 22:53:26