Пустое различие

Я сталкиваюсь с той же проблемой и получаю обратную связь от Microsoft:

К сожалению, эти SDK нельзя использовать с ADLS Gen2 на данный момент.

Однако я бы посоветовал следить за обновлениями Azure . Обновления Azure предоставляют информацию о важных обновлениях продукта Azure, дорожной карте и объявлениях.

blockquote>

Надеюсь, это поможет вам.

6
задан Greg 19 November 2008 в 17:34
поделиться

7 ответов

Различие прибывает, если Вы случайно вводите = вместо ==:

if (null = object) - Ошибка компилятора
if (object = null) - Ошибка!

12
ответ дан 8 December 2019 в 03:28
поделиться

Ну, вот что-то, что я отчасти как... использую расширения:

public static class ObjectExtensions
{
    public static bool IsNull(this object target)
    {
        return null == target;
    }
}

Теперь, можно забыть об этом полностью:

if(item.IsNull())
4
ответ дан 8 December 2019 в 03:28
поделиться

В добрые старые времена компиляторы счастливо позволили бы Вам сделать присвоения в условных выражениях, ведя к неумышленным ошибкам:

if(a = false)
{
  // I'll never execute
}
if(b = null)
{
  // I'll never execute 
}
b.Method(); // And now I'm null!

Таким образом, некоторые умные разработчики начали помещать свои константы сначала в их условные выражения:

if(false = a) // OOPS! Compiler error
{
  // ..
}
if(null = b) // OOPS! Compiler error
{
  // ..
}

Таким образом, они обучили себя избегать целого класса ошибок. Большинство современных компиляторов больше не будет позволять Вам совершить ту ошибку, но практика продолжается.

Существует еще одно преимущество для всегда помещения Ваших констант сначала:

if(myString != null && myString.Equals("OtherString"))
{
  // ...
}

может (в.NET, Java и большинстве языков с основанным на объектах строковым типом) быть уменьшенным до:

if("OtherString".Equals(myString))
{
  // ..
}
6
ответ дан 8 December 2019 в 03:28
поделиться

Логически, нет никакого различия.

С точки зрения проверки ошибок первое более желательно, потому что, если Вы отсутствуете, равняется знаку (=), компилятор сообщит, что Вы не можете сделать присвоение на константу.

2
ответ дан 8 December 2019 в 03:28
поделиться

Никакое различие. (пустой указатель == объект), практика от C/C++, где "=" и используется в качестве оператора присваивания, и в качестве оператора сравнения.

Было слишком много ошибок когда, если (объект = пустой указатель) использовался.

3
ответ дан 8 December 2019 в 03:28
поделиться

На многих языках == оператор сравнения =, оператор присваивания.

Это очень легкий ввести =, когда Вы действительно имеете в виду ==.

Поэтому конвенция ввода постоянного == переменная предпочтена.

constant=variable не скомпилирует таким образом показ Вас, Вашей ошибки.

variable=constant скомпилирует и сделает неправильную вещь во времени выполнения.

0
ответ дан 8 December 2019 в 03:28
поделиться

Некоторые предпочитают if (null == object) так, чтобы, если Вы случайно вводите = вместо ==, Вы получаете ошибку компиляции вместо присвоения.

2
ответ дан 8 December 2019 в 03:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: