El uso de .NET CodeDOM para declarar e inicializar un campo en una declaración

StackOverflow https://stackoverflow.com/questions/29531

  •  09-06-2019
  •  | 
  •  

Pregunta

Quiero usar CodeDOM a declarar e inicializar mi campo estático en una declaración.¿Cómo puedo hacer esto?

// for example
public static int MyField = 5;

Puedo parecer para averiguar cómo declarar un campo estático, y puedo establecer su valor más adelante, pero me parece que no puede conseguir el anterior efecto.

@lomaxx, Ay no, yo sólo quiero estática.No quiero const.Este valor puede cambiar.Yo sólo quería que la simplicidad de la declaración y la inicialización de ing en un solo golpe.Como si nada en el codedom mundo es simple.Cada tipo de nombre es de 20 caracteres de largo y se termina la construcción de estas enormes árboles de expresión.Hace que mis ojos de fallos.Sólo estoy viva hoy en día, gracias a resharper la necesidad de formatear.

¿Fue útil?

Solución

Una vez que creas tu CodeMemberField ejemplo para representar el campo estático, usted puede asignar el InitExpression propiedad a la expresión que desea utilizar para rellenar el campo.

Otros consejos

Este post por Omer van Kloeten parece hacer lo que desea.Observe que la salida tiene la línea:

private static Foo instance = new Foo();

Creo que lo que quiere es una constante en lugar de estática.Supongo que lo que quieres es el efecto de tener una estática readonly que es la razón por la que siempre se desea que el valor de 5.

En c# consts son tratados exactamente de la misma como de sólo lectura de la estática.

Desde el c# docs:

Incluso a pesar de las constantes son considerados los miembros estáticos, una constante la declaración no requiere ni permite un modificador static.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top