Usando .NET CodeDOM para declarar e inicializar um campo em uma instrução

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

  •  09-06-2019
  •  | 
  •  

Pergunta

Eu quero usar CodeDOM para ambos declarar e inicializar o meu campo estático em uma declaração.Como posso fazer isso?

// for example
public static int MyField = 5;

Eu posso parecer descobrir como declarar um campo estático, e que eu possa definir o seu valor mais tarde, mas eu não consigo obter o efeito acima.

@lomaxx, Agora, eu só quero estático.Eu não quero const.Este valor pode mudar.Eu só queria a simplicidade de declaração e inicialização de marcar em uma só penada.Como se nada no codedom mundo é simples.Cada tipo de nome é de 20 caracteres de comprimento e que você acabar de construção desses enormes árvores de expressão.Faz meus olhos bug out.Eu só estou vivo até hoje graças a resharper da reformatação.

Foi útil?

Solução

Depois de criar o seu CodeMemberField instância para representar o campo estático, você pode atribuir a propriedade InitExpression para a expressão que você deseja usar para preencher o campo.

Outras dicas

Este post por Omer van Kloeten parece fazer o que você quiser.Observe que a saída tem a linha:

private static Foo instance = new Foo();

Eu acho que o que você quer é uma constante, em vez de estática.Eu suponho que você quer é o efeito de ter um estática readonly que é por isso que você sempre deseja que o valor a ser 5.

Em c# consts são tratados exatamente o mesmo como uma leitura estática.

A partir do c# docs:

Mesmo que constantes são considerados membros estáticos, uma constante- declaração de não exige nem permite que um modificador estático.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top