【问题标题】:.Net Extension Methods vs Utility Classes.Net 扩展方法与实用程序类
【发布时间】:2009-04-28 02:48:52
【问题描述】:

重复大约 20 个最近的问题;有人请链接他们。

对于简单的场景,我应该何时使用其中一种?有什么优缺点?

使用扩展方法有哪些建议?

编辑:

让我举个例子。假设我有一个表示为字符串的 Web 相对路径。现在我想编写一个方法,它 1) 检查路径是否以 '/en/ 或 '/fr/' 开头 2) 如果没有,则将值从另一个字符串中添加。

例如扩展方法

public static string ToLocaleRelativePath(this string s, string contextPath)
        {
//1. Check if string begins with a locale
//2. If it does not prepend the value extracted from the context path
}

这样的操作适合扩展方法还是应该是实用程序?

谢谢

【问题讨论】:

    标签: c# .net extension-methods


    【解决方案1】:

    在您的示例中,实用程序类可能更合适,因为它仅对表示相对 URL 的字符串有意义,而不是对所有字符串有意义。相比之下,应用于所有(或绝大多数)字符串的方法(例如,Trim 或 Reverse 方法(如果这些方法尚不存在))将非常适合作为扩展方法。

    【讨论】:

      【解决方案2】:

      有一些很好的暗示表明实用程序类不好,因为它们授权和鼓励与 OOP 模式相矛盾的不良做法(考虑 thisthis)。

      【讨论】:

        猜你喜欢
        • 2011-06-06
        • 2015-08-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多