.Net扩展方法与实用类

2 .net c# 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
}
Run Code Online (Sandbox Code Playgroud)

这样的操作是否适用于exteniosn方法,还是应该是实用工具?

谢谢

ito*_*son 8

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