C#中有多个初始化的语法快捷方式吗?

时间:2010-01-14 23:53:31

标签: c# syntax language-features

有没有办法做到这一点:

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

字符较少?
例如当我有大量的状态初始化为相同的起始值时 谢谢!

4 个答案:

答案 0 :(得分:11)

你可以尝试

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

但是我看不出它会对你有什么帮助...如果你真的很多变量必须初始化为同一个东西,你可以考虑使用某种集合:

var myInts = new List<int>();
for (int i = 0; i < 1000; i++)
    myInts.Add(1);

答案 1 :(得分:3)

如果起始值为零并且它们是您的类的成员(不是局部变量),那么您不需要将它们显式初始化为零。

否则,不。

使用数组而不是拥有大量参数是否有意义?

答案 2 :(得分:1)

总的来说,我认为将每个声明分开会更好。它往往会让以后更容易改变。

特别是当许多变量倾向于表明它们应该组合成另一个对象时。

所以我倾向于......

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

等...

答案 3 :(得分:0)

让我们说你的所有“变量”实际上是 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);
}

但请注意,此代码已优化,并且不是非常易于并发。