似乎我不能用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!
答案 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);