类构造函数中成员的初始化简写方法

3

假设我有一个像这样的具有许多成员的类

class someclass
{
    public int number {get;set;}   //repeated a dozen times, with different names of course
}

它的构造函数应该长成这样。
public someclass(int number, ...,)
{
    this.number=number;        //repeated again a dozen times
}

有没有简写记号可以避免在构造函数中的重复?

也许你可以使用数组或列表代替? - Zbigniew
如果构造函数没有为所有成员提供值怎么办? - Rohit Vats
@walkhard:是的,那可能是一个选项,但实际成员并不是很多样化,添加另一层来包装它们看起来比对我重复一些行更烦人。 - Harter
@RohitVats:嗯,那不应该发生。 - Harter
你可以让VS为你完成这个操作...在类外部,使用所有需要的参数实例化一个类 var x = new MyClass(p1,p2,p3,p4,etc.),然后让VS为你创建构造函数 - 它会自动填充所有的 this.p1 = p1 - BlueChippy
2个回答

5
您可以使用对象初始化器:(Object Initializer)
var myInstance = new MyClass
                 {
                    Number = 42,
                    Foo = "Bar"
                 };

-1
你可以使用params
public someclass(params int[] number)
{
     this.number=number[0];        //repeated again a dozen times
     //...
}

创建实例:

var c = new someclass(1, 2, 3, 4, 5, ...);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接