在C#中是否有这种类型的构造函数的快捷方式?

时间:2014-03-05 00:54:45

标签: c# constructor visual-studio-2013

假设我有一个类Activity,其构造函数的唯一目的是将传递的参数分配给此实例的属性:

class Activity
{
 string name;
 int participantCount;
 bool inProgress;

 public Activity(string name,int participantCount,bool inProgress)
 {
  this.name=name;
  this.participantCount=participantCount;
  this.inProgress=inProgress;
 }
}

我在我的应用程序中经常使用这种构造函数模式,所以,假设这是一个可接受的编程实践,我想知道在Visual Studio中是否有某种快捷方式来生成它,或者是一种完成它的方法。代码更少,效果相同。

3 个答案:

答案 0 :(得分:4)

我同意,为此设置一个快捷方式会非常有帮助。 TypeScript有,而且非常好。不幸的是,C#5.0没有这样的东西。幸运的是,它在C#6.0中即将到来 - 或类似的东西。

目前提出的语法如下所示:

public class Point(int x, int y) {
    public int x, y;
}

我不确定我喜欢这种语法 - 我更喜欢TS如何做到这一点:

public class Point(public int x, private int y) { }

但我想要的可能是无关紧要的: - )。

请参阅http://damieng.com/blog/2013/12/09/probable-c-6-0-features-illustrated

答案 1 :(得分:3)

Visual Studio没有任何快捷方式,但Resharper确实如此(如果您正在编程.NET而不使用R#,那么您会浪费大量时间)

使用R#生成构造函数时,系统会要求您指定应由其初始化的属性。

请参阅http://www.jetbrains.com/resharper/webhelp/Code_Generation__Type_Constructors.html

答案 2 :(得分:1)

Resharper中有一个功能可以做到这一点。

Generating Type Constructors