Метод расширения С# не определен

У меня есть действительно базовый метод расширения:

namespace PHPImport
{
 public static class StringExtensionMethods
 {
 public static bool IsNullEmptyOrWhiteSpace(this string theString)
 {
 string trimmed = theString.Trim();

 if (trimmed == "\0")
 return true;

 if (theString != null)
 {
 foreach (char c in theString)
 {
 if (Char.IsWhiteSpace(c) == false)
 return false;
 }
 }

 return true;
 }
 }
}

Я пытаюсь использовать это в том же проекте (отдельный.cs файл), в том же пространстве имен, и я получаю 'string' does not contain a definition for 'IsNullEmptyOrWhiteSpace' ошибки 'string' does not contain a definition for 'IsNullEmptyOrWhiteSpace'.

namespace PHPImport
{
 class AClassName: AnInterface
 {
 private void SomeMethod()
 {
 if (string.IsNullEmptyOrWhiteSpace(aStringObject)) { ... }
 }
 }
}

Я попытался восстановить/очистить решение и перезапустить визуальную студию безрезультатно.

Есть идеи?

1 ответ

Поскольку вы сделали это методом расширения, вам нужно называть его как:

if (aStringObject.IsNullEmptyOrWhiteSpace())

Он "расширяет" использование в строковых экземплярах, он не добавляет новые статические методы в класс String, что было бы предложено синтаксисом текущего вызова.

licensed under cc by-sa 3.0 with attribution.