Сведения о вопросе

CPdeveloper

02:56, 3rd August, 2020

Теги

.net   codedom    

Использование .NET CodeDOM для объявления и инициализации поля в одном операторе

Просмотров: 405   Ответов: 3

Я хочу использовать CodeDOM как для объявления, так и для инициализации моего статического поля в одном операторе. Как я могу это сделать?

// for example
public static int MyField = 5;

Кажется, я могу понять, как объявить статическое поле, и я могу установить его значение позже, но я не могу получить вышеуказанный эффект.

@lomaxx, Нет, я просто хочу статики. Мне не нужен Конст. Это значение может измениться. Я просто хотел простоты объявления и инициализации одним махом. Как будто в мире кодедома все просто. Каждое имя типа имеет длину 20 + символов, и вы в конечном итоге создаете эти огромные деревья выражений. У меня глаза вылезают из орбит. Я жив только сегодня благодаря переформатированию resharper.



  Сведения об ответе

baggs

04:26, 14th August, 2020

После создания экземпляра CodeMemberField для представления статического поля можно назначить свойство InitExpression выражению, которое будет использоваться для заполнения поля.


  Сведения об ответе

$DOLLAR

01:20, 27th August, 2020

Этот пост Омера Ван Клотена, кажется, делает то, что вы хотите. Обратите внимание, что выходные данные имеют строку:

private static Foo instance = new Foo();


  Сведения об ответе

screen

16:39, 5th August, 2020

Я думаю, что то, что вы хотите, - это константа, а не статика. Я предполагаю, что вы хотите получить эффект статического чтения, поэтому вы всегда хотите, чтобы значение было равно 5.

В c# conts обрабатываются точно так же, как статика только для чтения.

Из документов c# :

Даже несмотря на то, что рассматриваются константы статические члены, константа- декларация не требует ни того, ни другого позволяет использовать статический модификатор.


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться