2012-08-07 7 views
14

que acaba de descubrir que .NET Fx ahora tiene 3 interfaces útiles:¿Por qué HashSet <T> no implementa IReadOnlyCollection <T>?

  1. IReadOnlyCollection<T>
  2. IReadOnlyList<T>
  3. IReadOnlyDictionary<K,V>

Y estoy algo confundido por qué HashSet<T> no aplican IReadOnlyCollection<T> ? ¿Hay alguna razón o Microsoft simplemente se olvidó de los conjuntos nuevamente?

UPD

Después de dos horas buscando en Google he encontrado que hay muchas colecciones de BCL que tiene .Count propiedad, pero no implementan IReadOnlyCollection<T> interfaz.

UPD2

He encontrado este post http://social.msdn.microsoft.com/Forums/en/netfxbcl/thread/b4fb991a-3f5c-4923-93d4-7cd5c004f859 y la respuesta por Immo Landwerth donde dicha he've siguiente

Will además de otras colecciones Lista <> Diccionario y <> actualizarse a para admitir estas interfaces?

Absolutamente. De hecho, todos nuestros tipos de colecciones integradas ya implementan IReadOnlyList <> e IReadOnlyDictionary <>. Esto significa que usted puede pasar directamente una instancia de List, T [] o Dictionary <> a una API que toma una versión IReadOnly de la misma.

+0

Bien, entonces ¿por qué [Lista ] (http://msdn.microsoft.com/en-us/library/6sh2ey19 (v = vs.110)) hace? – hazzik

+0

Extraño. Imho, una decisión de diseño incongruente. Consulte http://www.infoq.com/news/2011/10/ReadOnly-WInRT/ –

+0

¿Dónde hay ISet ? – hazzik

Respuesta

13

En la versión 4.5 del marco, HashSet<T> no implementa IReadOnlyCollection<out T>.

Esta omisión se resolvió en la versión 4.6 del marco (lanzada casi 12 meses después de la pregunta anterior).

Estas correcciones son not limited to HashSet<T>, otras colecciones como Stack<T> y Queue<T> han recibido estas mejoras.

Las especulaciones sobre el motivo de cualquier omisión son irrelevantes. Puede ser la supervisión o la presión del tiempo, pero francamente, tiene poca importancia. Sospecho que incluso las aportaciones directas del equipo de desarrollo de Microsoft serían un tanto subjetivas, incluso si disfrutamos de anécdotas asociadas.

Cuestiones relacionadas