无法访问我的扩展方法

时间:2011-12-01 17:26:57

标签: c# .net string overloading

寻找一种方法来检查字符串是否包含在另一个忽略大写/小写的情况下,我发现it

工作正常。然后,我尝试将它放到我的StringExtensions命名空间。

namespace StringExtensions
{

    public static class StringExtensionsClass
    {
        //... 

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

然后:

using StringExtensions;

...

if (".. a".Contains("A", StringComparison.OrdinalIgnoreCase))

但是我收到以下错误:

  

方法'包含'没有重载需要'2'参数

我该如何解决?

2 个答案:

答案 0 :(得分:22)

如果要使用扩展程序,请使用以下语句添加:

using StringExtensions;

由于声明了Extension方法的方式,visual studio本身不会找到它们,而常规的Contains方法只接受一个参数,因此是你的例外。

答案 1 :(得分:6)

我发现了我的错误:

对于使用dynamic类型的工作,需要使用caststring。 。ToString()方法还不够。

if (((string)result.body).Contains(foo, StringComparison.OrdinalIgnoreCase))

现在工作正常。 再次感谢stackoverflow。 :)