不能用params作为属性写类

时间:2015-04-26 07:38:20

标签: c# class properties params

似乎我不能用params写一个类作为属性。 有没有办法为类设置params属性?

对于方法,我可以这样做:

public static void Method(double x,params double[] k)
{

}

我想要一个包含未知数量参数的类。

类:

public class Class
{
    double x;
    params double[] k;
}

并创建新对象

var obj = new Class(1d, 1d, 1d, ...); //
var obj = new Class(1d, new double[] { 1d, 1d, ...}); //this is not comfortable!

2 个答案:

答案 0 :(得分:3)

  

有没有办法为类设置params属性?

不,没有必要。您可以让类构造函数接受params double[] doubles并将它们存储在数组中:

void Main()
{
    var a = new A(1.0, 2.0, 3.0);
}

public class A
{
    private double[] doubles;
    public A(params double[] doubles)
    {
        this.doubles = doubles;
    }
}

答案 1 :(得分:2)

  

var obj = new Class(1d,new double [] {1d,1d,...});

您需要使用params的构造函数来创建obj,就像这样

public class Class
{
    double x;
    double[] k;
    public Class(double _x, params double[] _k)
    {
       x=_x; k=_k;
    }
}

然后

var obj=new Class(1d,1d,1d);