【发布时间】:2015-12-01 02:04:47
【问题描述】:
编辑: 我在这里与公司财产合作,这个概念对阅读这篇文章的人来说应该是有意义的: 我有 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 个参数。我是否忽略了一些非常简单的事情?
【问题讨论】:
-
不应该是
ClassA而不是Class A吗?整洁很重要。 -
你确定你发布的代码可以编译吗?
-
@stephen.vakil 从技术上讲,该代码是公司财产,因此我实际上无法使用原始代码。让我看看我是否可以详细说明代码
-
显然
var EFImport(empId, instanceA)没有任何意义。 真实代码是否读到类似var whatever = new EFImport(empId, instanceA);的内容?
标签: c# oop constructor