字符串的Contains(...)方法区分大小写。我想用下面的代码覆盖它,使它不区分大小写(这是从here窃取的):
public static bool Contains(this string source, string toCheck, StringComparison comp)
{
return source.IndexOf(toCheck, comp) >= 0;
}但是,我不知道代码应该粘贴到哪里。它是否应该放在类program的相同命名空间中?它需要一个专用的类吗?
发布于 2012-01-18 21:09:17
如果您打算为string类创建一个extension method,那么您需要将它放在某个类中。要使用它,只需确保您有一条using语句来指定对包含该类的命名空间的引用。
例如:
namespace SomeNamespace
{
public static class StringExtensions
{
public static bool Contains(this string source, string toCheck, StringComparison comp)
{
return source.IndexOf(toCheck, comp) >= 0;
}
}
}
// ... In some other class ...
using SomeNamespace;
// ...
bool contains = "hello".Contains("ll", StringComparison.OrdinalIgnoreCase);发布于 2012-01-18 21:09:23
在创建扩展方法时,可以将其放入任何名称空间和任何静态类中:
namespace MyProject.MyNamespace
{
public static class MyExtensions
{
public static bool Contains(this string source, string toCheck, StringComparison comp)
{
return source.IndexOf(toCheck, comp) >= 0;
}
}
}这纯粹是一个组织上的事情。当然,在使用代码的任何地方,都需要添加必要的using MyProject.MyNamespace;语句。
发布于 2012-01-18 21:08:41
你需要把这个扩展方法放在对你有意义的地方,比如一个工具类,它必须是静态的。实际上,您不能覆盖string中的任何内容,这就是您使用扩展方法的原因。
示例:
public static class StringExtension
{
public static bool Contains(this string source, string toCheck, StringComparison comp)
{
return source.IndexOf(toCheck, comp) >= 0;
}
}https://stackoverflow.com/questions/8910588
复制相似问题