C# 如何避免传递给构造函数的多个参数赋值
如果我在c#中有一个类,其中包含许多需要在构造函数中初始化的变量,例如C# 如何避免传递给构造函数的多个参数赋值,c#,class,C#,Class,如果我在c#中有一个类,其中包含许多需要在构造函数中初始化的变量,例如 public class AnyClass { private int Var1; private int Var2; ... private int varN; public AnyClass(int InVar1,int InVar2,...,InVarN) { Var1=InVar1; Var2=InVar2; ...
public class AnyClass
{
private int Var1;
private int Var2;
...
private int varN;
public AnyClass(int InVar1,int InVar2,...,InVarN)
{
Var1=InVar1;
Var2=InVar2;
...
VarN=InVarN;
//
//Code
//
}
}
有没有一种方法可以避免中间变量InVar1、InVar2等,使传递给构造函数的参数自动映射到类中包含的变量 目前没有
这就是可能的样子
以前
public class Point {
private int x, y;
public Point(int x, int y)
this.x = x;
this.y = y;
}
}
之后
如果您不介意将属性与公共setter一起使用,那么可以使用。例如
我真的不能说不,但我不知道有什么办法;我能提供的唯一选择是使用无参数构造函数,但这意味着重构类以生成这些属性。目前还没有,但它们可能出现在C#6中(请参见主构造函数)。看看哪一个讨论了它们。一个小的改进是使用this.var1=var1,这样你就不必想出第二组名称了。我想,几乎肯定会的。(至少以某种形式)我希望(没有支持字段):public class Point(public int x,public int y){}@JonSkeet,希望有人能写一篇比我链接的更好的博客文章,展示当前的期望是什么……@IanRingrose:我的“第一反应”文章展示了其中的一些:好,我想我只能等c#6了,或者利用你关于房产的建议。谢谢
public class Point(private int x, private int y) {
}
Cat cat = new Cat { Age = 10, Name = "Fluffy" };