Контракт ICollection <T>.IsReadOnly

Для построчного измерения дельты попробуйте gnomon .

Утилита командной строки, немного похожая на ts moreutils, для добавления информации о временной метке к стандартному выводу другой команды. Полезно для длительных процессов, где вы хотите получить исторический отчет о том, что так долго.

Вы также можете использовать опции --high и / или --medium, чтобы указать порог длины в секундах, в течение которого гномон будет выделять метку времени красным или желтым цветом. И вы можете сделать еще несколько вещей.

example

8
задан Konrad Rudolph 2 July 2009 в 09:56
поделиться

3 ответа

Something else to consider...

Your collection is an array wrapper and it has some array-like semantics. ie, Items can't be inserted or removed but they can be modified.

Arrays return false for IsReadOnly and true for IsFixedSize.

I think I would probably implement IList in addition to IList and then mimic the array behaviour, so far as IsReadOnly and IsFixedSize are concerned.

The key word in the remark from MSDN is the "or":

A collection that is read-only does not allow the addition, removal, или модификация элементов после создания коллекции.

Ваша коллекция разрешает модификацию, поэтому возврат true для IsReadOnly будет На мой взгляд, нарушение этого контракта.

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

Я думаю, что для выполнения условий контракта вам нужно будет вернуть true .

Вы можете (дополнительно) реализовать IBindingList - здесь есть AllowNew , AllowEdit и AllowRemove . Вы должны вернуть true из AllowEdit и false из двух других.

Проверяет ли ваш вызывающий, это зависит от вызывающего. Однако будет много кода привязки пользовательского интерфейса.

добавлено:

Также; вы должны , вероятно, реализовать IList , если вы реализуете IList ; в частности, IList важен для ряда сценариев отражения и привязки, где типы заранее неизвестны.

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

Here, the semantics of modification are important. There is a difference between modifying the elements of a collection and modifying the objects contained by the collection. Think of the elements of the actual spaces in the collection. You can't add spaces, remove spaces, or change the object in a certain space. That's the contract that IsReadOnly abides by.

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

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