Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何避免传递给构造函数的多个参数赋值_C#_Class - Fatal编程技术网

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; ...

如果我在c#中有一个类,其中包含许多需要在构造函数中初始化的变量,例如

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" };