C# .Net扩展方法与实用程序类

C# .Net扩展方法与实用程序类,c#,.net,extension-methods,C#,.net,Extension Methods,最近约20个问题的副本;有人请联系他们 对于简单的场景,我应该何时使用其中一种?利与弊是什么 使用扩展方法的建议是什么 编辑: 让我举个例子。假设我有一个表示为字符串的web相对路径。现在我想写一个方法,1)检查路径是否以“/en/或“/fr/”开头;2)如果它没有从另一个字符串中获取要前置的值 e、 g延拓法 public static string ToLocaleRelativePath(this string s, string contextPath) { //1. C

最近约20个问题的副本;有人请联系他们

对于简单的场景,我应该何时使用其中一种?利与弊是什么

使用扩展方法的建议是什么

编辑:

让我举个例子。假设我有一个表示为字符串的web相对路径。现在我想写一个方法,1)检查路径是否以“/en/或“/fr/”开头;2)如果它没有从另一个字符串中获取要前置的值

e、 g延拓法

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
}
这样的操作适合extenioson方法还是应该是实用程序


在您的示例中,实用程序类可能更合适,因为它只适用于表示相对URL的字符串,而不适用于所有字符串。相比之下,应用于所有(或绝大多数)字符串的方法(例如,修剪或反向方法(如果这些方法还不存在的话))很适合作为扩展方法。

有一些好的提示表明,实用程序类是不好的,因为它们支持并鼓励与OOP模式相矛盾的坏做法(请考虑和)