Estoy tratando de hacer algunas cosas de serialización/deserialización con un tipo de excepción personalizado. Este tipo tiene un campo definido como:¿Es posible alias tipo de matriz en C#?
private object[] resourceMessageParams;
Tengo todo el código agradable y fuertemente tipado con un poco de magia expresión LINQ, pero quiero ir aún más lejos que eso y hacer algo como esto:
using ResourceMessageParamsType = object[];//<-- "Identifier expected" error here
/*...*/
private ResourceMessageParamsType resourceMessageParams;
/*...*/
this.resourceMessageParams =
(ResourceMessageParamsType)serializationInfo.GetValue(
ReflectionHelper.GetPropertyNameFromExpression(() =>
resourceMessageParams), typeof(ResourceMessageParamsType));
lugar de esto:
(object[])serializationInfo.GetValue(
ReflectionHelper.GetPropertyNameFromExpression(() =>
resourceMessageParams), typeof(object[]));
para dar cabida a un posible cambio de tipo de este campo en el futuro, por lo que habrá que cambiar el tipo de una sola vez en la definición de alias. Sin embargo, el compilador se detiene en object
en using ResourceMessageType = object[];
quejándose de que se espera un identificador. Cambiar a Object[]
ayuda un poco, pero esta vez el corchete se resalta con el mismo mensaje de error.
¿Hay alguna manera de definir un alias para tipo de matriz en C#?
Un comentario general: es redundante y, en general, mala forma de poner 'Tipo' en los nombres de sus tipos. –