.Net扩展方法与实用类

时间:2009-04-28 02:48:52

标签: c# .net extension-methods

最近约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
}

此类操作是否适合exteniosn方法,还是应该是实用程序?

由于

2 个答案:

答案 0 :(得分:8)

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

答案 1 :(得分:0)

有一些很好的暗示,公用事业类很糟糕,因为它们赋予并鼓励与OOP模式相矛盾的不良做法(考虑thisthis)。