Почему resharper предоставляет следующую рекомендацию?

Может быть, вам нужен не массив, а хеш?

Изменить толчок на

undef $maxmot{$id}{ $HoA{$id}[$pos3] };

Он создает хеш (с неопределенными значениями, поэтому важны только ключи) , В выводе я не вижу более 3 клавиш для каждой последовательности во входных данных вашего связанного вопроса.

7
задан hexacyanide 16 October 2013 в 16:31
поделиться

6 ответов

Поскольку это не знает если T тип значения или ссылочный тип, таким образом, он заставляет код работать с обоими.

13
ответ дан 6 December 2019 в 06:25
поделиться

Я ответ второго Berado, но добавил бы, что можно предотвратить это путем добавления ограничения ниже:

public static void AssertNotNull<T>(string name, T val) where T : class
12
ответ дан 6 December 2019 в 06:25
поделиться

Те два метода не эквивалентны. Первый разрешает AssertNotNull ("нечто", 0) в то время как вторые броски. Я думаю, что Resharper фанатичен в этом случае.

1
ответ дан 6 December 2019 в 06:25
поделиться

Я предполагаю, потому что T мог быть нессылочным типом.

0
ответ дан 6 December 2019 в 06:25
поделиться

если Вы знаете, что T всегда будет классом, затем добавляют, где пункт для высказывания таким образом кода origional будет в порядке.

public static void AssertNotNull<T>(string name, T val)
    where T : class
    {
        if (val == null)
            throw new ArgumentNullException(String.Format("{0} must not be null", name));
    }
0
ответ дан 6 December 2019 в 06:25
поделиться

Это, очевидно, не то, что Вы хотите в этом экземпляре, но он просто пытается быть полезным, удостоверяясь, что Вы не представляете ошибку путем упущения, что ссылочные типы могут использоваться для T. Как @Michael сказанный Meadows, Вы, вероятно, хотите добавить class ограничение к T.

2
ответ дан 6 December 2019 в 06:25
поделиться
Другие вопросы по тегам:

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