Может быть, вам нужен не массив, а хеш?
Изменить толчок на
undef $maxmot{$id}{ $HoA{$id}[$pos3] };
Он создает хеш (с неопределенными значениями, поэтому важны только ключи) , В выводе я не вижу более 3 клавиш для каждой последовательности во входных данных вашего связанного вопроса.
Поскольку это не знает если T
тип значения или ссылочный тип, таким образом, он заставляет код работать с обоими.
Я ответ второго Berado, но добавил бы, что можно предотвратить это путем добавления ограничения ниже:
public static void AssertNotNull<T>(string name, T val) where T : class
Те два метода не эквивалентны. Первый разрешает AssertNotNull ("нечто", 0) в то время как вторые броски. Я думаю, что Resharper фанатичен в этом случае.
Я предполагаю, потому что T мог быть нессылочным типом.
если Вы знаете, что 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));
}
Это, очевидно, не то, что Вы хотите в этом экземпляре, но он просто пытается быть полезным, удостоверяясь, что Вы не представляете ошибку путем упущения, что ссылочные типы могут использоваться для T
. Как @Michael сказанный Meadows, Вы, вероятно, хотите добавить class
ограничение к T
.