vine aquí en busca de una solución a un problema ligeramente diferente, con la participación de un método estático que toma dos matrices genéricas y devuelve un nuevo genérico formación. Como mi método era estático, no podía usar el ejemplo, excepto como inspiración. En cambio, desarrollé la siguiente solución.
T [ ] raMerged = (T [ ]) alMerged.ToArray (typeof (T));
return raMerged;
En el fragmento anterior, alMerged es una ArrayList de objetos genéricos T.
Esto cumple las condiciones del contrato especificado por la firma del método, que es la siguiente.
public static T [ ] MergeNewItemsIntoArray<T> (
T [ ] paMasterList ,
T [ ] paNewItems)
where T : IComparable , new ()
En la firma, la cláusula where ilustra mi resolución de otro problema que he encontrado en varios hilos, ninguno de los cuales están dirigidos directamente a esta pregunta. Sin embargo, con suerte, esto ayudará al menos a otra alma.
¡Gracias a todos! Se necesitaba una alternativa a las excepciones. No sabía sobre el incumplimiento (T). –
Hmmm, una función que cambia un parámetro ... qué poco funcional (sí, uso TryParse pero trato de evitar cosas que se llaman a sí mismas funciones pero en realidad no lo son). –
@Edgar no lo ve como cambiar un parámetro, véalo como un segundo valor de retorno. No es peor que devolver un 'Tuple'. Lo que le temes son los parámetros 'ref'. –
Trillian