实例方法是否不在c#中创建对象引用

本文关键字:创建 对象引用 是否 实例方法 | 更新日期: 2023-09-27 17:57:59

我正在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关键字添加到函数中,错误就会消失。有人能帮我解开这个概念的神秘面纱吗?

实例方法是否不在c#中创建对象引用

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

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

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