频繁功能:如何构建?

时间:2010-04-24 11:31:13

标签: c#

如何在C#中构建经常使用的非重要函数(转换等),因为一切都必须包含在对象中?通常我会将所有这些函数放在一个静态的Utility类中。这是一个好习惯吗?大多数开发人员如何做到这一点?

4 个答案:

答案 0 :(得分:3)

这往往是大多数开发人员最终做的事情,包括我自己。

唯一的缺陷就是当你开始拥有一个庞大的集合实用程序时,这些实用程序并不真正属于一起(转换,数据库访问,记录你的名字......)。

尝试将它们组织为不同的程序集,因此不需要一组实用程序的项目不必导入大量无关代码。

答案 1 :(得分:1)

在C#中执行此操作的优雅方法是使用扩展方法Link)。如果需要实用程序功能,则只能导入相关的命名空间。

在技术方面,这基本上只是你所描述的一个静态实用程序类,但在C#中你可以使用它们获得很好的语法糖。

答案 2 :(得分:0)

根据具体需要,我通常会使用静态结构或注册服务提供商。例如,对于日志记录,我通常会使用服务提供程序和带有接口或基本记录器类型的日志记录类,然后在开发模式下,我将注册一个消息框提供程序,以便我可以看到所有记录的行特定的日志级别,而对于获取对象列表的特定List.find谓词,我将构建一个具有静态方法的实用程序类,该方法返回一个类型相应的谓词类。

答案 3 :(得分:0)

我接下来使用扩展方法的概念。我通常在.Extensions命名空间中有类,如 StringExtensions IEnumerableExtensions 等。基本上,我尝试为每个逻辑功能组创建一个单独的类。通常这意味着我按照它们扩展的类型,它们生成的类型或它们支持的总体特征(转换,格式化等)对它们进行分组。