1

我正在使用 c# 开发一个 asp.net Web 应用程序。我有一个名为 GetUser 的公共课程。在那个类中,我有一个名为 GetCurrentUser 的方法。方法如下:

    public MobileUser GetCurrentUser(MDMDataContext dc, string userCode)
    {
        using (dc)
        {
            dc.ObjectTrackingEnabled = false;
            var currentUser =
                from MobileUser in dc.MobileUsers
                where MobileUser.UserCode == usercode                     
                select MobileUser;

            MobileUser mu = new MobileUser();
            mu = currentUser.Single();

            return mu;
        }
    }

但是当我尝试使用 GetCurrentUser 实例方法时,如下所示:

using (MDMDataContext dc = new MDMDataContext())
        {
            GetUser.GetCurrentUser(dc, "ABCD");
        }

我收到以下错误,“非静态字段、方法或属性的对象引用' ....GetUser.GetCurrentUser ....'

但是,如果我将 static 关键字添加到函数中,错误就会消失。有人可以为我揭开这个概念的神秘面纱吗?

4

1 回答 1

6

您的方法是一个实例方法,这意味着您需要一个实例来运行它:

using (MDMDataContext dc = new MDMDataContext())
{
        GetUser user = new GetUser();
        user.GetCurrentUser(dc, "ABCD");
}

static关键字意味着该方法是静态,并且可用于整个类型,而不是绑定到特定实例。这就是为什么当它被标记为静态时,您可以使用类名(并且必须以这种方式调用它)来调用它。

于 2014-04-10T21:52:44.387 回答