编辑: 我在这里与公司财产合作,这个概念对于阅读这篇文章的人来说应该是有意义的: 我有2个EFImport构造函数,一个有2个参数,另一个有3个参数。我的建议是我的构造函数有2个参数不被识别。我正在使用new关键字,并且使用具有3个参数的构造函数以完全相同的方式初始化对象,并且它完美地工作。但是没有识别带有2个参数的构造函数。同样,我不能在这里专门提出代码,但这个概念就是我所要求的。
我需要使用两个不同的构造函数,一个需要额外的参数,另一个不需要该参数。我不确定为什么我无法实际到达只有两个参数的构造函数。
我有以下构造函数:
public EFImport(string empId, Class A instanceA, IEnumerable<ClassB> instanceB)
{
//do stuff here
}
public EFImport(string empId, Class A instanceA)
{
//do other different stuff here
}
我试图像这样调用构造函数:
Public HttpResponseMessage Post([FromBody]string fEmp)
{
//do stuff here
//call constructor here:
//NEW keyword is used here
var fileImp = new EFImport(empId, instanceA, instanceB);
//this works just fine
}
Public HttpResponseMessage Put([FromBody]string empImportId)
{
//do stuff here
//call constructor here:
//NEW keyword used here
var fileImp = new EFImport(empId, instanceA);
//Here it gives me the error stated below
}
错误509'EFImport
'不包含带有2个参数的构造函数
我究竟做错了什么?两个构造函数都是公共的,带有3个参数的构造函数完全正常,但编译器看不到带有2个参数的构造函数。我忽略了一些非常简单的事情吗?
答案 0 :(得分:0)
var obj = new EFImport(empId, instanceA);
和
var obj = new EFImport(empId, instanceA, instanceB);
应该有用。
答案 1 :(得分:0)
我似乎不知道你在做什么:
var EFImport(empId, instanceA)
此代码存在一些问题:
您正在错误地实例化对象。在C#中,如果要创建新对象,可以使用:
TypeOfVar nameOfVar = new TypeOfVar();
或
var nameOfVar = new TypeOfVar();
有关如何在C#中使用构造函数的更多信息,请访问:https://msdn.microsoft.com/en-us/library/ace5hbzh.aspx
您似乎也错过了分号;)