Member cannot be accessed with an instance reference; qualify it with a type name 无法使用实例引用访问成员;请用类型名称限定它。

10 浏览
0 Comments

Member cannot be accessed with an instance reference; qualify it with a type name 无法使用实例引用访问成员;请用类型名称限定它。

今天我正在使用C#工作,尝试使用静态类,但似乎对我不起作用,我想知道解决方案。\n我已经在网上浏览了一段时间,但似乎找不到答案。\n以下是我的代码:\n

class Count
{
    public static int sum(int add1, int add2)
    {
        int result = add1 + add2;
        return result;
    }
}
class Program
{
   static void Main(String[] args)
    {
        Console.WriteLine("正在进行加法运算:\n请输入第一个数字");
        int num1 = int.Parse(Console.ReadLine());
        Console.WriteLine("请输入第二个数字");
        int num2 = int.Parse(Console.ReadLine());
        Count add = new Count();
        int total = add.sum(num1, num2);
        Console.WriteLine("总和为{0}。", total);
        Console.ReadLine();
    }
}

0
0 Comments

问题原因:

这个问题的出现是因为在访问一个成员时使用了实例引用而没有使用类型名称进行限定。

解决方法:

要解决这个问题,可以将Count类标记为静态类,然后在代码中使用以下方式进行调用:

public static class Count

int total = Count.sum(num1, num2);

这样就可以按预期工作了。

作者确实提到了静态类,所以他可能确实想要静态类。但是,无论Count是否是静态的,都不会影响他应该如何调用sum方法。

当然,如果他正确地描述了自己想要实现的目标,这只是为了避免每个方法都标记为静态的便利方式。

0
0 Comments

在上述内容中,出现了一个问题:Member cannot be accessed with an instance reference; qualify it with a type name(成员不能通过实例引用访问;请使用类型名称加以限定)。这个问题的原因是在调用方法时使用了实例引用,而该方法是一个类方法,必须通过类型名称来访问。

解决这个问题的方法是使用类型名称来调用方法。具体操作如下:

将代码:

Count add = new Count();

int total = add.sum(num1, num2);

修改为:

int total = Count.sum(num1, num2);

通过以上修改,问题得到了解决。感谢以上方法,它对我很有帮助。

0