0

「FileData.cs」ファイルの私のコンストラクターコード:

public FileData(BatchData batch)
{
    this._batch = batch;
}

「FileData.cs」ファイルからプロパティにアクセスしたい。そこで、次のコードを使用しました。

FileData fd = new FileData();

「Constructor does not take 0 arguments」というエラー メッセージが表示されます。クラスからプロパティにアクセスする方法がわかりません。解決策を教えてください。ありがとう。

4

5 に答える 5

0

デフォルトのコンストラクターはありません。コンパイラはデフォルトで生成しないため、1つ含める必要があります。

基本的に、引数を使用して明示的なコンストラクターを定義したため、コンパイラーはデフォルトのコンストラクターを生成しないため、エラーが発生します。

または:

FileData fd = new FileData(new BatchData());
于 2012-09-28T14:48:47.123 に答える
0

パラメータなしのコンストラクタを明示的に追加する必要があります

public FileData()
{
}

public FileData(BatchData batch)
{
    this._batch = batch;
}

_batchクラスインスタンスが必要な操作を実行できるようにするためにフィールドが必要な場合は、パラメーターなしのコンストラクターでフィールドを初期化する必要があることに注意してください。

public FileData()
{
    this._batch = new BatchType;
}

または、パブリックプロパティを使用して公開します。

public BatchType Batch 
{
     get { return _batch; }
     set {_batch = value }
}

自動プロパティを使用してコードを簡素化できます

public BatchType Batch { get; set }

public FileData(BatchData batch)
{
   this.Batch = batch;
}
于 2012-09-28T14:49:41.260 に答える
0

エラーメッセージはかなり明白です。FileDataデータを渡さずにオブジェクトを作成することはできません。BatchData新しいを作成するには、コンストラクターでインスタンスを提供する必要がありますFileData。この動作が意図されていると仮定すると、の新しいインスタンスを作成するBatchDataか、既存のインスタンスにアクセスし、それを使用してオブジェクトを構築する必要があります。

FileData問題が、インスタンスを必要とせずにのインスタンスを構築できるようにする必要がある場合は、パラメーターを受け取らないBatchData新しいコンストラクターを追加する必要FileDataがあります。これを行うと、投稿にあるコードが再び機能します。

于 2012-09-28T14:54:39.730 に答える
0

1) パラメータ BatchData をクラスに渡す必要があります。

BatchData bd = new BatchData();
FileData fd = new FileData(bd);

2) プロパティにアクセスするには...

a)...公開するだけです:

class FileData
{
public BatchData _batch;

public FileData(BatchData batch)
{
    this._batch = batch;
}
}

次のようにプロパティにアクセスします

fd._batch;

b)またはゲッターとセッターを書くことができます

class FileData
{
private BatchData _batch {get; set;}

public FileData(BatchData batch)
{
    this._batch = batch;
}
}

そしてアクセスのように

BatchData bd = fd.getbd();
fd.setbd(bd);
于 2012-09-28T14:55:20.903 に答える
0

FileData クラスのデフォルト コンストラクタを定義する必要があります。

public FileData()
    {

    }

プロパティへのアクセス: public プロパティを定義すると、anthor クラスからこのプロパティにアクセスできます。

于 2012-09-28T14:55:30.937 に答える