我最近刚开始我的 C# 编程中级课程,我正在学习如何创建多个类和创建在我的程序中使用的方法。
这对我来说是一个非常新的话题,所以如果这是非常明显或愚蠢的事情,我深表歉意。我在所有方法中都收到以下消息:
Cannot access static method in non-static context
方法类中的代码:
public static int Add(params int[] numbers) {
var sum = 0;
foreach (var n in numbers) {
sum += n;
}
return sum;
}
public static int Subtract(params int[] numbers) {
var sum = 0;
foreach (var n in numbers) {
sum -= n;
}
return sum;
}
public static int Multiply(params int[] numbers) {
var sum = 0;
foreach (var n in numbers) {
sum *= n;
}
return sum;
}
public static int Divide(params int[] numbers) {
var sum = 0;
foreach (var n in numbers) {
sum /= n;
}
return sum;
}
public static string[] CheckingOfSomeSort(string userInput, int value, bool isAddition, bool isSubtraction, bool isDivision, bool isMultiplication) {
if (userInput.Contains("+")) {
var addition = userInput.Split('+');
value = 1;
isAddition = true;
return addition;
} else if (userInput.Contains("-")) {
var subtraction = userInput.Split('-');
value = 2;
isSubtraction = true;
return subtraction;
} else if (userInput.Contains("*")) {
var multiplication = userInput.Split('*');
value = 3;
isMultiplication = true;
return multiplication;
} else if (userInput.Contains("/")) {
var division = userInput.Split('/');
value = 4;
isDivision = true;
return division;
}
return null;
}
我正在尝试创建一个计算器(我已经完成了,但是我现在正在尝试使用方法)
根据您的评论,我知道您正在创建一个对象,CalculatorMethods
并且您正在尝试使用该对象调用该类的静态方法。
我对问题的评论:
这些方法是静态的。(以及它们的使用方式,它们也应该是静态的)。但是静态方法不能用 Class 的对象访问,而是直接用类的 Type 访问。在这里,我猜 CalculatorMethods 是方法所在的类,您将尝试执行诸如 calc.Add() 之类的操作。这是不可能的。而是做 CalculatorMethods.Add()
相反,您可以通过像 belwo 一样直接使用 Type 调用来尝试它,
void MethodOfCalling()
{
int sum = CalculatorMethods.Add(new int[2] { 1, 2 });
}
你可以看到,我已经使用CalculatorMethods
(一个类名 - 更准确地说是类的类型)来调用方法而不是类的对象。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句