Нет необходимости нет, я имею в виду, ты издеваешься надо мной? Сколько людей пишут программы, в которых сравнение строки с целью определения ее нулевой длины никак не влияет на производительность. Даже если строки не сохраняют счетчик длины и VB каждый раз выполняет сравнение строк strcmp () в стиле c, функция сравнения строк не занимает много времени, чтобы определить, что одна из строк имеет нулевую длину, не так ли? Но строки .NET включают в себя поле длины, и поэтому, когда вы проводите сравнение строк, первое, что он собирается проверить, это то, отличаются ли длины, то есть прямое сравнение int. Все, что вы сохраняете, делая это самостоятельно, если вызов функции, и только тогда, когда JIT вставляет Len ().
Кстати, в VB.NET вам не нужно вызывать String.IsNullOrEmpty (), потому что сравнения между строками преобразуются в вызов String.strcmp (), который преобразует нули (Nothing в VB) в ссылки на String. .Пустой строки. Затем он продолжает вызывать встроенную функцию, которую Reflector не может исследовать, но я был бы совершенно уверен, что первое, что он делает, это проверяет, отличаются ли длины строк.