2015-09-04 25 views
-3

編輯: 我在這裏使用公司屬性,這個概念對於讀這篇文章的人應該是有意義的: 我有2個用於EFImport的構造函數,一個有兩個參數,另一個有三個參數。我的建議是我的構造函數有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」不包含一個構造函數需要兩個參數

我究竟做錯了什麼?這兩個構造函數都是公共的,具有3個參數的構造函數完全正常,但編譯器沒有看到帶2個參數的構造函數。我能忽略一些非常簡單的事情嗎

+1

[如何創建一個最小,完整和可驗證例如](http://stackoverflow.com/help/mcve) – Eser

+1

不應該是'ClassA'而不是'ClassA'嗎?整潔計數。 – LarsTech

+0

你確定你發佈了可以編譯的代碼嗎? – 2015-09-04 20:31:25

回答

0
var obj = new EFImport(empId, instanceA); 

var obj = new EFImport(empId, instanceA, instanceB); 

應該工作。

+1

'應該工作。「爲什麼?如何解釋OP代碼中的問題,他如何解決這個問題以及爲什麼它應該起作用。 – Eser

+1

我不認爲op會讀取它就像Google上'c#constructor'的結果一樣。我可以告訴他他必須用'new'關鍵字實例化對象,並且他必須將它分配給一個變量,以便進一步使用它,但是TL; DR。 – Tarabass

+1

'我不認爲這個操作會讀',那麼你的帖子的內容是什麼。向我們解釋一下?我們已經可以自己解決問題。 – Eser

0

我好像不知道你在用做什麼:

var EFImport(empId, instanceA)

你有幾個問題與此代碼:

  • 您不正確實例化對象。在C#中,如果你想創建一個新的對象,你可以使用:https://msdn.microsoft.com/en-us/library/ace5hbzh.aspx

  • 您:如何使用C#構造函數

    TypeOfVar nameOfVar = new TypeOfVar(); 
    

    var nameOfVar = new TypeOfVar(); 
    

    的更多信息可以在這裏找到也似乎缺少你的分號;)

+0

我編輯了代碼,以顯示我實際上正確地實例化對象。我在問一個與錯誤相關的具體問題 - 爲什麼具有2個參數的構造函數沒有被識別。這就是我所要求的。 – rocat

相關問題