2012-04-23 48 views
0

我做了下面的代碼在C#項目:沒有構造函數,它需要0個參數 - 但那不是真的?

private void RandAddButton_Click(object sender, EventArgs e) { 
    int numberOfItems = int.Parse(amountItems.Text); 
    CreateDataSet.CreateDataSet create = new CreateDataSet.CreateDataSet(); 
    create.CreateItems(numberOfItems); 
} 

,你可以看到我嘗試使用CreateItems在CreateDataSet類。 的問題是,我得到如下因素誤差

'CreateDataSet.CreateDataSet' does not contain a constructor that takes 0 arguments

但在CreateDataSet類我有下面的構造:

public CreateDataSet() { 

} 

這是爲什麼不工作?

謝謝

+0

如果CreateDataSet然後是外部DLL重建它,並刷新參考... – Zaki 2012-04-23 09:30:27

+0

你能表現出更多的代碼?例如類CreateDataSet。 – Skalli 2012-04-23 09:30:41

+1

CreateDataSet.CreateDataSet create = new CreateDataSet.CreateDataSet();你的命名空間和類名應該不同。這會導致歧義。 – 2012-04-23 09:32:19

回答

1

這樣做:

CreateDataSet create = new CreateDataSet(); 

相反的:

CreateDataSet.CreateDataSet create = new CreateDataSet.CreateDataSet(); 
+0

然後我得到的錯誤'CreateDataSet'是一個'命名空間'位像使用'類型':( – 2012-04-23 09:59:42

+0

@JonasHansen如其中一個答案中的建議,請改變你的命名空間或類名稱。 – GETah 2012-04-23 20:57:19

3

您的通話new CreateDataSet.CreateDataSet()想創建的嵌套類CreateDataSet.CreateDataSet的一個實例。如果你想打電話給CreateDataSet的構造函數,你應該只使用new CreateDataSet()

+0

嗨謝謝你的回答,如果我照你說的做我得到的錯誤:'CreateDataSet'是一個'命名空間',但用於'類型' – 2012-04-23 09:34:53

+2

在這種情況下,不要使用同一個名字和一個名字空間。您可以通過使用'global ::'完全限定名稱來避開這個問題,但最好重命名類或名稱空間。 – CodesInChaos 2012-04-23 09:35:27

+0

好吧我會嘗試重命名我的班級,謝謝 – 2012-04-23 09:40:31

相關問題