0

Visual Studio で開発された asp.net 2.0 Web サイトで dll を参照しました。dll を提供した人は、それを参照して、Subjects というクラスをインスタンス化すると言っていました。

私はそれを参照し、入力した場合:

Subjects mySubjects = new Subjects();

「件名」が水色のテキストで表示されるため、「見つかった」ように見えます。

次に、次のように記述してメソッドにアクセスしようとすると:

string ProjectSubject = mySubjects.GetSubject(ProjectID);

繰り返しますが、mySubjects が呼び出し可能なメソッドを表示した後にピリオドを入力するとすぐに、そのインテリセンスで「見つかった」ようです。

ここまでは順調ですね。しかし、ページを実行しようとすると、次のようなコンパイル エラーが発生します。

メソッド 'Subjects' のオーバーロードは 0 引数を取ります。

理解できない。クラスを常に参照する必要があると思いました

someClass myClass = new someClass();
4

2 に答える 2

3

メソッド「Subjects」のオーバーロードは0個の引数を取ります。

これは、にパラメータなしのコンストラクタが定義されていないことを意味しますSubjects。Intellisenseは、最初の開き括弧を入力するときに可能なオプションを表示する必要があります。それ以外の場合は、オブジェクトブラウザーでクラスを検索して、可能なコンストラクターを確認します(1つ以上ある可能性があります)。

そのクラスにパブリックコンストラクターが定義されていない可能性もありますが、作成者が「サブジェクトのインスタンスをインスタンス化する」ように指示しているため、これはありそうにありません。繰り返しますが、オブジェクトブラウザは何が利用できるかを教えてくれるはずです。

于 2012-10-10T15:17:10.233 に答える
0

どうやらSubjectsのコンストラクターはパラメーターを取ります。

アセンブリに関するドキュメントがあるかどうかは明らかにわかりません。

ただし、Visual Studioの「オブジェクトブラウザー」機能を使用してタイプを検査し、そこから、必要なパラメーターのタイプを把握できるはずです。

于 2012-10-10T15:19:55.000 に答える