Подтвердить что ты не робот

Не удается получить доступ к моему методу расширения

Ищете способ проверить, содержит ли строка в другом, игнорируя верхний/нижний регистр, я нашел 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"

Как это исправить?

4b9b3361

Ответ 1

Я нашел свою ошибку:

Для этого с типом dynamic необходимо использовать cast to string.. ToString() недостаточно.

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

Теперь работает отлично. Еще раз спасибо stackoverflow.:)

Ответ 2

Если вы хотите использовать расширение, добавьте этот оператор using:

using StringExtensions;

Из-за того, как объявлены методы расширения, визуальная студия не найдет их сама по себе, а обычный Contains метод принимает один аргумент, следовательно, ваше исключение.