Почему "abcd" .StartsWith ("") возвращает true? - PullRequest
82 голосов
/ 28 сентября 2008

Заголовок - это весь вопрос. Кто-нибудь может дать мне причину, почему это происходит?

Ответы [ 12 ]

1 голос
/ 28 сентября 2008

Потому что строка начинается хорошо с «ничего».

0 голосов
/ 28 августа 2017

В C # причина, по которой он возвращается true, заключается в том, что разработчики специально для него кодировали.

Если вы посмотрите исходный код , вы найдете специальную логику для обработки пустой строки:

public Boolean StartsWith(String value)
{
    return StartsWith(value, StringComparison.CurrentCulture);
}

public Boolean StartsWith(String value, StringComparison comparisonType)
{
    ...

    if (value.Length == 0)
    {
        return true;
    }
...