1

我在我的项目中创建了名为 Classes、Forms 和 Models 的文件夹。

假设我的项目名为 ABC,因此文件夹层次结构为:

ABC
    Classes
    Forms
    Models

在 \Models\ 中,我有一个名为 ApplicationModel.cs 的类,它包含一个名为 GetApplications() 的公共方法。

但是,当我从同一个 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

听起来您正在使用静态函数。你忘记了 static 关键字吗?

静态函数从类而不是对象“运行”:

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

如果没有一些关于如何尝试调用该方法的代码,很难给出明确的建议。我可以想到两种可能的方法:

  • 要么您尝试通过ApplicationModel ( ApplicationModel.GetApplications()) 调用该方法,在这种情况下您需要声明该方法static
  • 或者您需要在对象上调用该方法,但您使用的是该类型——在这种情况下,声明/创建一个类型的对象ApplicationModel并在该对象上调用该方法;(例如ApplicationModel model = new ApplicationModel(); model.GetApplications();
于 2012-04-09T20:10:46.850 回答
1

看起来该课程未标记为公开。

你的课应该是

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

        }
    }
  }
于 2012-04-11T04:36:45.533 回答