c# - 如何覆盖 Contains()?

标签 c# string overriding

字符串的Contains(...) 方法区分大小写。我想覆盖它,以便使用以下代码(从 here 窃取)使其不区分大小写:

public static bool Contains(this string source, string toCheck, StringComparison comp)
{
    return source.IndexOf(toCheck, comp) >= 0;
}

但是,我不知道应该把代码贴在哪里。它应该放在类程序的同一个命名空间内吗?是否需要专门的类(class)?

最佳答案

如果您打算创建一个 extension method对于 string 类,则需要将其放入某个类中。要使用它,只需确保您有一个 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);

关于c# - 如何覆盖 Contains()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8910588/

相关文章:

c# - 我想从串行端口读取电位器的 int,但它一直显示 (4⸮⸮⸮⸮j⸮/⸮。)

c# - 通用存储库模式有重复的代码,那么有什么好处呢?

c++ - cpp继承虚方法解析顺序

c# - C# WebBrowser 控件中带有 HTML anchor 的奇怪浏览器行为

c - 如何将文本文件中的一行子字符串保存到字符串数组中?

c# - 使用字符串的值创建新的表单对象

java - 处理 JSP page/customerLogin.jsp 行时发生异常

JavaScript:覆盖警报()

Java/Android 重写方法

c# - 完整性检查 : Salt and hashed passwords