1

プロジェクトにClasses、Forms、Modelsという名前のフォルダーを作成しました。

私のプロジェクトの名前がABCであるとすると、フォルダー階層は次のようになります。

ABC
    Classes
    Forms
    Models

\ Models \には、GetApplications()という名前のパブリックメソッドを含むApplicationModel.csという名前のクラスがあります。

ただし、同じABCプロジェクトの他の場所からそのメソッドを呼び出すと、「「GetApplications」という名前は現在のコンテキストに存在しません」というメッセージが表示されます。

私は追加しました:

using ABC.Models;

呼び出し側のクラスに、しかしそれは違いはありません。GetApplications()を右クリックして、「解決」が表示されることを願っていますが、うまくいきません。

自分のパブリックメソッドにアクセスするにはどうすればよいですか?

4

4 に答える 4

5

GetApplications()の定義とそれを呼び出そうとしているコードを確認すると便利ですが、クラスの静的メソッドまたはインスタンスメソッドのいずれかであると思いますApplicationModel。いずれの場合もApplicationModel、usingステートメントを使用してコードにクラスの名前空間を認識させた可能性がありますが、メソッドはクラスまたはクラスのインスタンスのいずれかで呼び出す必要があります。

GetApplicationsが静的メソッドの場合、

var applications = ApplicationModel.GetApplications();

インスタンスメソッドの場合:

var appModel = new ApplicationModel(); // or, retrieve the instance from elsewhere...

var applications = appModel.GetApplications();

GetApplicationsいずれにせよ、それを呼び出すには、を含むクラスを参照する必要があります。これで問題が解決しない場合は、質問を編集して、メソッドの定義と呼び出し元のコードを含めてください。

于 2012-04-09T20:09:37.090 に答える
1

そのメソッドをどのように呼び出そうとしているのかについてのコードがなければ、決定的なアドバイスを与えることは困難です。私は2つの可能な方法を考えることができます:

  • ApplicationModel クラス( )を介してメソッドを呼び出そうとしてApplicationModel.GetApplications()いる場合は、メソッドを宣言する必要がありますstatic
  • または、オブジェクトのメソッドを呼び出す必要がありますが、型を使用しています。この場合、型のオブジェクトを宣言/作成し、ApplicationModelそのオブジェクトのメソッドを呼び出します。(例ApplicationModel model = new ApplicationModel(); model.GetApplications();
于 2012-04-09T20:10:46.850 に答える
1

静的関数を使用しているようです。staticキーワードを忘れましたか?

静的関数は、オブジェクトではなく、クラスから「実行」されます。

public static string[] GetApplications()
于 2012-04-09T20:09:07.930 に答える
1

クラスがパブリックとしてマークされていないようです。

あなたのクラスは

   namespace ABC 
  {
    namespace Models
    {
        public class ApplicationModel  //class needs to be public is accessed outside the namespace
        {

        }
    }
  }
于 2012-04-11T04:36:45.533 に答える