【问题标题】:Unable to call custom extension method无法调用自定义扩展方法
【发布时间】:2014-10-12 09:31:24
【问题描述】:

我已经尝试过像这样制作自己的扩展方法..

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

这样我就可以找出字符串中存在的任何子字符串,而不管它们的大小写如何,但是在 if Condtion 中使用此扩展方法时,我遇到了这样的错误..

字符串不包含 Contains 的定义

if (currentLine.Contains("local", StringComparison.OrdinalIgnoreCase))
{
}

请帮我解决这个问题..

【问题讨论】:

  • 我遇到错误究竟是什么错误?
  • @Liath 没有不区分大小写的Contains 方法。
  • @Liath 因为Contains 方法区分大小写
  • @SonerGönül 我已经更新了我的帖子,错误是string does not contain a definition for Contains
  • @user3924730 不能在任何地方声明。它们需要位于 static 类中,该类可从您要使用它们的位置访问。你有没有费心阅读docs

标签: c# string extension-methods contains


【解决方案1】:

确保您的扩展方法是 public static 并且在 public static 类中。

更具体地说,如How to: Implement and Call a Custom Extension Method (C# Programming Guide) 中所述:

  1. 定义一个静态类来包含扩展方法。 类必须对客户端代码可见

  2. 将扩展方法实现为静态方法,至少与包含的类具有相同的可见性

  3. 在调用代码中,添加using指令,指定包含扩展方法类的命名空间。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-10
    • 1970-01-01
    • 2011-10-14
    • 1970-01-01
    • 2016-10-21
    • 2019-06-26
    • 1970-01-01
    相关资源
    最近更新 更多