class class1
{
private char a;
private int b;
//构造函数,用来初始a和b
public class1(char a, int b)
{
this.a = a;
this.b = b;
}
//下面是设置两个可读属性,为显示赋值结果。可以忽略
public char A
{
get { return this.a; }
}
public int B
{
get { return b; }
}
}
新建控制台应用程序,调用一下。进行测试。
class Program
{
static void Main(string[] args)
{
class1[] c = new class1[] { new class1('a', 1), new class1('b', 2), new class1('c', 3) };
for (int i = 0; i < c.Length; i++)
{
class1 ci = c[i];
Console.WriteLine(ci.A + " " + ci.B);
}
Console.Read();
}
}
class1[] c=new class1[] {{'a',1},{'b',2},{'c',3}};
这种语法糖不是不可以有,但是它不能提高多少生产效率,反而还会导致可读性降低。比如{'a',1}两个参数的顺序是什么样的?如果是{1,2},谁能知道哪个参数是什么意思?还得回去查class1的属性/字段顺序,多麻烦?所以还是老老实实的用集合和类的初始化器吧。看这样的代码多清晰,好的语法,不止是方便,更要有高可读性:
class1[] c = new class1[]
{
new class1{ A='a', B=1 },
new class1{ A='b', B=2 },
new class1{ A='c', B=3 }
};