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列表中放置空格都是有摆动空间的区域