在Visual Studios C#中生成构造函数不起作用......为什么?

时间:2017-03-08 08:23:58

标签: c# wpf visual-studio visual-studio-2013

我已经使用{get; set;}设置了类的所有属性,每次单击generate构造函数时,它都会给我这条消息:cursor必须在构造函数调用上。我也无法真正发现这条消息。

using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ISYAbschlussProjektJ
{
    public class Loan
    {
        public string bank { get; set; }
        public double amount { get; set; }
        public double rate { get; set; }
        public string address { get; set; }
        public string phonenumber { get; set; }
        public string email { get; set; }
        public string aktenzeichen { get; set; }
        public string iban { get; set; }
        public string bic { get; set; }
        public string betreuer { get; set; }
        public DateTime deductiondate { get; set; }
        public DateTime startdate { get; set; }


    }
}

2 个答案:

答案 0 :(得分:4)

您忘记了类构造函数

public class Loan
{
    /* Empty constructor */
    public Loan() { }
}

生成构造函数包含所有参数( VS 2015 ):

  • 选择所有属性
  • 右键单击/“快速操作和重构”
  • 生成构造函数'Loan(string,double,double,string,string,...'

答案 1 :(得分:3)

为什么不自己编写构造函数?构造函数必须与封闭类具有相同的名称,并且没有返回类型。在您的情况下,构造函数可以是

public Loan() 
{ 
}

如果需要,您可以在构造函数中传递其他参数,如下所示:

public Loan(string bankParam) 
{
    this.bank = bankParam;
}

您可以为各种场景设置一个或多个构造函数(但它们必须具有不同数量/或类型的参数)。有关详细说明,请参阅MSDN programming guide

此外,最好使用大写字母命名属性,例如BankAmount˛

编辑:既然你坚持代,你就可以这样(我在VS 2015上测试,在其他版本中也应该类似):

要生成构造函数,您必须使用constuctor。 所以,在代码中的某个地方(不在Loan类中)编写构造函数调用的示例,如下所示:

Loan l = new Loan("Erste bank", 10.0, 0.5, "Strasse 1");

然后您可以右键单击该行并选择“快速操作和重构”(或VS中的类似选项),或单击灯泡并选择“在贷款中生成构造函数”。这将产生你 public Loan(string s, decimal d, decimal p, string d)或类似的东西......

但是,由于缺乏控制,奇怪的变量命名等等,我不会建议过多的魔法和代码生成...但是,适合自己。