Это невозможно, потому что класс string
в .NET Framework не является частичным.
Вместо этого используйте метод реального расширения, подобный следующему:
public static class StringExtensions
{
public static bool IsNullOrWhiteSpace(this string value)
{
if (value == null) return true;
return string.IsNullOrEmpty(value.Trim());
}
}
Использование будеттогда будет выглядеть так:
string s = "test";
if(s.IsNullOrWhiteSpace())
// s is null or whitespace
Как и для всех методов расширения, вызов не приведет к исключению нулевой ссылки, если строка null
:
string s = null;
if(s.IsNullOrWhiteSpace()) // no exception here
// s is null or whitespace
Такое поведение заключается в том, что компилятор преобразует этот код в код IL, который эквивалентен следующему коду IL:
string s = null;
if(StringExtensions.IsNullOrWhiteSpace(s))
// s is null or whitespace