我在项目中创建了名为Classes,Forms和Models的文件夹。
假设我的项目名为ABC,因此文件夹层次结构为:
ABC
Classes
Forms
Models
在\ Models \中,我有一个名为ApplicationModel.cs的类,它包含一个名为GetApplications()的公共方法。
然而,当我从同一个ABC项目的其他地方调用该方法时,我得到“在当前上下文中不存在名称'GetApplications'”
我添加了:
using ABC.Models;
到调用类,但没有区别。我右键单击GetApplications()以希望在那里看到“Resolve”,但是没有去。
我该怎样做才能访问自己的公共方法?
答案 0 :(得分:5)
查看GetApplications()
的定义和试图调用它的代码会很有帮助,但我认为它是static或ApplicationModel
类的实例方法。在任何一种情况下,您可能已使用using语句使代码知道ApplicationModel
类的命名空间,但必须在类或类的实例上调用该方法,如下所示:
如果GetApplications
是静态方法,
var applications = ApplicationModel.GetApplications();
如果是实例方法:
var appModel = new ApplicationModel(); // or, retrieve the instance from elsewhere...
var applications = appModel.GetApplications();
无论如何,您必须引用包含GetApplications
的类才能调用它。如果这对您没有帮助您解决问题,请编辑您的问题以包含方法的定义和调用代码。
答案 1 :(得分:1)
听起来你正在使用静态功能。你忘了静态关键字吗?
静态函数从类中“运行”,而不是对象:
public static string[] GetApplications()
答案 2 :(得分:1)
如果没有关于如何调用该方法的代码,很难给出明确的建议。我可以想到两种可能的方式:
ApplicationModel
类(ApplicationModel.GetApplications()
)调用该方法,在这种情况下,您需要声明方法static
ApplicationModel
的对象并在该对象上调用该方法; (例如ApplicationModel model = new ApplicationModel(); model.GetApplications();
)答案 3 :(得分:1)
看起来这个班级没有被标记为公开。
你的课应该是
namespace ABC
{
namespace Models
{
public class ApplicationModel //class needs to be public is accessed outside the namespace
{
}
}
}