C# 无法使用实例引用访问 我仍然处于编程任务的中间,试图使用方法来制作计算器,而我得到: Member 'LabAssignFiveCalc.Sum.Addition(double, double)' cannot be accessed with an instance reference; qualify it with a type name instead

C# 无法使用实例引用访问 我仍然处于编程任务的中间,试图使用方法来制作计算器,而我得到: Member 'LabAssignFiveCalc.Sum.Addition(double, double)' cannot be accessed with an instance reference; qualify it with a type name instead,c#,C#,在这行代码上 Sum s = new Sum(); if (metUse == "Addition") result = s.Addition(num1, num2); 这是整个文件 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace La

在这行代码上

        Sum s = new Sum();
        if (metUse == "Addition")
            result = s.Addition(num1, num2);
这是整个文件

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace LabAssignFiveCalc
{
   public class Sum
    {
        //Addition method
        public static double Addition(double num1, double num2)
        {
            double result;
            result = num1 + num2;
            return result;
        }
        //Subtraction method
        public static double Subtract(double num1, double num2)
        {
            double result;
            result = num1 - num2;
            return result;

        }
        //Multiplication method
        public static double Multiply(double num1, double num2)
        {
            double result;
            result = num1 * num2;
            return result;
        }
        //Division method
        public static double Divide(double num1, double num2)
        {
            double result;
            result = num1 / num2;
            return result;

        }
    }
    public class Program
    {

        //Main
        static void Main(string[] args)
        {
            //Declare Variables
            int choice;
            string op;
            double num1;
            double num2;
            double result;
            string metUse;
            //Ask user for calculation parameters
            Console.WriteLine("Calculator:");
            Console.WriteLine("Which operation do you wish to perform? Type the corresponding number.");
            Console.WriteLine("1) Addition\n2) Subration\n3) Multiplication\n4) Division");
            choice = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("Please type the first number you wish to calculate");
            num1 = Convert.ToDouble(Console.ReadLine());
            Console.WriteLine("Please type the second number you wish to calculate");
            num2 = Convert.ToDouble(Console.ReadLine());
            //Declare Operator
            switch (choice)
            {
                case 1:
                    op = "+";
                    metUse = "Addition";
                    break;
                case 2:
                    op = "-";
                    metUse = "Subtract";
                    break;
                case 3:
                    op = "*";
                    metUse = "Multiply";
                    break;
                case 4:
                    op = "/";
                    metUse = "Divide";
                    break;
                default:
                    throw new ArgumentException();
            }
            Sum s = new Sum();
            if (metUse == "Addition")
                result = s.Addition(num1, num2);

            //Show Calculation
            Console.WriteLine("{0}{1}{2}={3}", num1, op, num2, result);
            Console.ReadKey();
        }
    }
}
就像我说的,我还是一个初学者,所以请对我放松点:p这可能是一些真正的新手错误


感谢您的帮助:D

添加是一种静态方法

不能使用类型的实例调用静态方法;用类型本身调用它

请尝试以下方法:

if (metUse == "Addition")
    result = Sum.Addition(num1, num2);
result = Sum.Addition(num1, num2);

Sum类的加法成员被标记为static。这意味着不能在实例化的类上调用它。改为这样做:

if (metUse == "Addition")
    result = Sum.Addition(num1, num2);
result = Sum.Addition(num1, num2);

由于加法是Sum类中的一个静态方法,因此它可以作为Sum.addition(a,b)访问;
您不必创建对象就可以使用它。

您的类只有静态方法。永远不要实例化它。你会想了解静态修饰符:任何方法都不能实例化。“由于加法是Sum类中的静态方法,那么它可以作为Sum访问。加法(a,b)”:不是这样。当然,C#是区分大小写的。方法是
添加
,而不是
添加
;并且它是
Sum
的成员,而不是
Sum
:因此在这种情况下,静态方法只能被称为
Sum.Addition(arg1,arg2)
。好的,那么arg名称以及是否在arg列表中放置空格都是有摆动空间的区域