Hace poco le pregunté a alguien por qué prefería devolver una matriz fuertemente tipada a una IList. Siempre pensé que programar contra una interfaz era el programa más flexible y de mejor manera cuando se enfrentaba a un proyecto que tenía una larga vida. Así que me pareció extraño cuando respondió:regresando IList <T> contra Array en C#?
Por lo general, preferimos los tipos inmutables sobre los mutables. Las matrices son inmutables. IList no es.
No estoy del todo seguro de entender esta afirmación. ¿Alguien puede ayudar a aclarar esto?
Gracias por cualquier ayuda que ustedes puedan proporcionar.
¡Esto me dio el momento "ah-ha" que estaba buscando! La devolución de T [] desde un repositorio es menos "permeable" (como en la Ley de Extracciones Permeables). Si quisiera agregar algo al repositorio, lo llamaría método Agregar/Insertar ¿verdad? Por lo tanto, sería contraproducente/contra-intuitivo para mí asumir que al agregar algo a la lista devuelta podría participar en una Unidad de Trabajo o trabajar como se anticipó. ¡Cuando usas un IRepository, él es 100% correcto! Aunque la explicación que me dio fue más parecida a lo que dijiste: Array es más inmutable que IList en algunos aspectos. Muchas gracias! – mkelley33
+1 para una lista de observación junior .Agregar podría pensar que es una buena idea (frente a no verlo con matriz) –