Существует ли ярлык синтаксиса для нескольких инициализация в C#?

Есть ли способ сделать это:

valueType x = 1, y = 1, z = 1;

с меньшим количеством символов?
например, Когда у меня есть большая сумма состояния для инициализации к тому же начальному значению.
Спасибо!

5
задан Byron Ross 14 January 2010 в 23:53
поделиться

4 ответа

Если начальное значение равно нулю, и они являются членами вашего класса (не локальные переменные), то вам не нужно явно инициализировать их до нуля.

В противном случае нет.

будет иметь смысл использовать массивы вместо того, чтобы иметь большое количество параметров?

3
ответ дан 18 December 2019 в 11:56
поделиться

Вы можете попробовать

int x, y, z;
x = y = z = 1;

, но я не вижу, как это поможет вам ... если у вас действительно много переменных, вы должны инициализировать к тому же , вы могли бы рассмотреть вопрос о некоторой коллекции:

var myInts = new List<int>();
for (int i = 0; i < 1000; i++)
    myInts.Add(1);
11
ответ дан 18 December 2019 в 11:56
поделиться

Как правило, я думаю, что он имеет тенденцию быть лучше отделения каждой декларации. Он имеет тенденцию, чтобы облегчить изменение позже.

Особенно, когда многие переменные, как правило, предполагают, что им следует объединить в другой объект.

Так что я склонен делать ...

valueType  x = IntialValue;
valueType  y = IntialValue;
valueType  z = IntialValue;

и т. Д. ...

1
ответ дан 18 December 2019 в 11:56
поделиться

позволяет сказать, что все ваши «переменные» на самом деле полей POCO (простой старый объект CLR, то есть и объект, который не служит цели, а для хранения данных).

class State {
    public double pression_top;
    public double pression_bottom;
    /* hundreds and hundres of fields */
}

В этом случае вы могли бы сделать что-то вроде:

var myState = new State();
var t = typeof(State);
foreach (var field in t.GetFields()) {
    field.SetValue(myState, 1);
}

Обратите внимание, однако этот код нет , оптимизирован, а не очень удобно.

0
ответ дан 18 December 2019 в 11:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: