Какое преимущество делают Вы добираетесь с набором по Списку (T) в.NET 2.0 +

Вам нужно использовать JavaScript, чтобы показать / скрыть div. Используйте события mouseover / mouseout, чтобы запустить javascript, который добавит удалить необходимый вам CSS:

<div onmouseover="show();" onmouseout="hide();>
LEFT DIV
</div>

<div id="RIGHTDIV">
RIGHT DIV
</div>

function show(){
   //This will add the CSS class that makes the div visible
   document.getElementById("RIGHTDIV").classList.add('CSSCLASSNAME');
}

function hide(){
   //This will remove the CSS class that made the div visible
   document.getElementById("RIGHTDIV").classList.add('CSSCLASSNAME');
}

Если вам нужна дополнительная информация, дайте мне знать, и я дам вам более полный ответ. Думая об этом, вы можете сделать это намного сложнее, если вы имеете дело с сенсорными устройствами, различными размерами и переменным размером контента.

8
задан Toran Billups 30 January 2009 в 14:08
поделиться

5 ответов

Универсальный Список дает Вам повышение производительности.

Посмотрите этот вопрос:

Дженерики C# обладают преимуществом Perfomance?

Кавычка из MSDN:

Это должно в ваших интересах использовать определенную для типа реализацию Списка <(<(T>)>) класс вместо того, чтобы использовать класс ArrayList или записать набор обертки со строгим контролем типов самостоятельно. Причиной является Ваша реализация, должен сделать то, что Платформа.NET уже делает для Вас, и общеязыковая среда выполнения может совместно использовать код промежуточного языка Microsoft и метаданные, которые не может Ваша реализация.

4
ответ дан 5 December 2019 в 21:23
поделиться

Список не ориентирован на многопотоковое исполнение, и не предназначенный, чтобы быть выставленным. Можно использовать Набор (T) вместо этого (обратите внимание, что это отличается от CollectionBase), или просто выставьте IList (T) или IEnumerable (T).

1
ответ дан 5 December 2019 в 21:23
поделиться

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

Помимо этого, Вы предотвращаете проблемы преобразования типа, которые Вы не можете обнаружить во время компиляции. (Например, добавление интервала в списке массива, который должен содержать строки, не является проблемой, когда Вы используете список массива, но можете вызвать invalidcastexception, когда Вы не ожидаете интервал во время выполнения. Используя универсальные списки или наборы предотвращает это, потому что код не скомпилирует.)

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

1
ответ дан 5 December 2019 в 21:23
поделиться

Наследование от Набора (T) рекомендуется Microsoft. Список (T) API, как гарантируют, не останется тем же от версии до версии. Так, при использовании Списка (T) в открытых интерфейсах код может повредиться при работе новых версий CLR.

Krzysztof Cwalina, один из разработчиков BCL, говорит следующее о Списке <T>:

Почему мы не рекомендуем использовать Список <T> в общедоступных API

Мы не рекомендуем использовать Список <T> в общедоступных API по двум причинам.

  • Список <T> не разработан, чтобы быть расширенным. т.е. Вы не можете переопределить участников. Это, например, означает, что Список возврата объекта <T> от свойства не сможет быть уведомленным, когда набор будет изменен. Набор <T> позволяет, Вы переопределяете защищенного участника SetItem, чтобы быть “уведомленными”, когда новые объекты добавляются, или изменяется существующий объект.
  • Список <T> имеет много участников, которые не релевантны во многих сценариях. Мы говорим, что Список <T> слишком “занят” для общедоступных объектных моделей. Вообразите ListView. Список возврата свойства Items <T> со всем его богатством. Теперь, посмотрите на фактический ListView. Объекты возвращают тип; это - путь, более простой и подобный Набору <T> или ReadOnlyCollection <T>.

Источник

0
ответ дан 5 December 2019 в 21:23
поделиться

Универсальный Список <> был разработан для скорости и внутреннего пользования. Универсальный набор <>, с другой стороны, был разработан для расширяемости.

Одно из преимуществ Набора <> класс - то, что можно переопределить несколько различных методов (ClearItems (), InsertItem (), RemoveItem () и SetItem ()). Универсальный Список <> тип, с другой стороны, не предоставляет методов, которые могут быть переопределены.

Почему это имеет значение? Скажите, например, что будущий мандат требований, что Вы генерируете событие ItemAdded, когда объект добавляется к набору. Вы использовали Список <> тип, у Вас нет слишком многих опций. Вы использовали Набор <> класс, однако, у Вас есть способность выставить новое событие ItemAdded и переопределить InsertItem () метод так, чтобы это сгенерировало событие ItemAdded, когда объект добавляется.

1
ответ дан 5 December 2019 в 21:23
поделиться
Другие вопросы по тегам:

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