Есть ли сокращенный способ обнуления строки в C #? - PullRequest
6 голосов
/ 21 апреля 2010

Есть ли сокращенный способ обнуления строки в C #?

Это будет эквивалент (если 'x' строка):

string y = x == null ? "" : x;

Полагаю, я надеюсь, что есть оператор, который будет работать примерно так:

string y = #x;

Желаемое за действительное, а?

Самое близкое, что у меня есть, это метод расширения для строкового класса:

public static string ToNotNull(this string value)
{
    return value == null ? "" : value;
}

, что позволяет мне сделать:

string y = x.ToNotNull();

Есть какие-нибудь улучшения, кто-нибудь?

Ответы [ 2 ]

16 голосов
/ 21 апреля 2010

Это будет работать:

string y = x ?? "";

См. http://msdn.microsoft.com/en-us/library/ms173224.aspx

0 голосов
/ 21 апреля 2010

Если вам это требуется регулярно, вместо метода расширения вы можете рассмотреть возможность создания собственного типа, который ведет себя как Nullable и использует то же использование, что и System.Nullable.GetValueOrDefault ();метод.К сожалению, вы можете использовать System.Nullable только для типов значений, поэтому вы не можете создать пустую строку в качестве стандарта.

...