2012-04-23 16 views
0

私はC#プロジェクトに次のコードを作った:あなたはCreateDataSetクラスでCreateItemsを使用しようとしています見ることができるよう0引数を取るコンストラクタはありませんが、それは真実ではありませんか?

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

public CreateDataSet() { 

} 

はなぜこれが動作していない: 問題は、私は

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

folowingエラーが出るが、CreateDataSetクラスで、私は次のコンストラクタを持っているということでしょうか?

+0

を... – Zaki

+0

あなたは、もう少しコードを表示することができますか?たとえば、クラスCreateDataSetです。 – Skalli

+1

CreateDataSet.CreateDataSet create = new CreateDataSet.CreateDataSet();あなたの名前空間とクラス名は異なるはずです。これはあいまいさを引き起こす。 –

答えて

1

この操作を行います。

CreateDataSet create = new CreateDataSet(); 

の代わりに:CreateDataSetが外部DLLである場合、それを再構築し、参照を更新

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

次に、 'CreateDataSet'が '名前空間'のビットが 'タイプ'のように使用されているというエラーが発生しました:( –

+0

@JonasHansen答えの1つとして示唆されているように、名前空間またはクラス名。 – GETah

3

あなたのコールnew CreateDataSet.CreateDataSet()が入れ子になったクラスCreateDataSet.CreateDataSetのインスタンスを作成しようとありがとうございました。 CreateDataSetのコンストラクタを呼び出す場合は、new CreateDataSet()を使用してください。

+0

こんにちは、私はエラーが発生すると言って答えをありがとう: 'CreateDataSet'は '名前空間'ですが、 'タイプ'のように使用されます –

+2

その場合、クラスに同じ名前を使用しないでくださいネームスペース。この問題を回避するには、 'global ::'を使って名前を完全修飾することができますが、クラスまたは名前空間の名前を変更する方が良いでしょう。 – CodesInChaos

+0

私はクラスの名前を変更しようとします。ありがとうございます –

関連する問題