无法在非静态上下文中访问静态方法

旧金山先生

我最近刚开始我的 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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在非静态上下文中无法访问静态方法

来自分类Dev

从非静态上下文中调用静态方法

来自分类Dev

从静态上下文中的 a 调用非静态方法

来自分类Dev

在静态上下文中无法访问非静态字段“ lblSystemStatus”

来自分类Dev

Android无法更新ArrayAdapter,因为“无法从静态上下文中引用非静态方法'notifyDataSetChanged()'”

来自分类Dev

错误:无法从静态上下文中引用非静态方法'findViewById(int)'

来自分类Dev

错误:无法在静态上下文中引用非静态方法“ edit”

来自分类Dev

错误:无法从静态上下文中引用非静态方法 setListMovie(ArrayList<Movie>)

来自分类Dev

无法从静态上下文引用Java非静态方法

来自分类Dev

“无法从静态上下文引用非静态方法”错误

来自分类Dev

错误:无法从Java的静态上下文中引用非静态变量扫描

来自分类Dev

试图让我的显示方法工作(不能从静态上下文中引用非静态方法)

来自分类Dev

非静态字段不能从静态上下文中引用-Main方法

来自分类Dev

Android:非静态方法不能从静态上下文中引用。使困惑?

来自分类Dev

非静态方法isGooglePlayServicesAvailable和getErrorDialog不能从静态上下文中引用

来自分类Dev

的java - 非静态方法“getLogger”不能从静态上下文中引用

来自分类Dev

非静态方法count(int)不能从静态上下文中引用

来自分类Dev

非静态方法不能从静态上下文中引用

来自分类Dev

非静态方法getIntent()不能从静态上下文中引用

来自分类Dev

不能从静态上下文中引用非静态方法“inflate(byte[],int,int)”

来自分类Dev

不能从静态上下文中引用非静态方法 matcher(CharSequence)

来自分类Dev

不能从静态上下文中引用非静态方法(尽管已经创建了非静态方法)?

来自分类Dev

非静态上下文中的内部枚举

来自分类Dev

如何在静态上下文中访问文件?

来自分类Dev

Java-无法从静态上下文中引用

来自分类Dev

从静态上下文调用非静态方法

来自分类Dev

使用.setText在jTextArea上打印将返回错误非静态变量,无法从静态上下文中引用

来自分类Dev

HashSet :: add用法不会导致“无法从静态上下文引用非静态方法”

来自分类Dev

setDisplayHomeAsUpEnabled()错误:无法从静态上下文引用非静态方法

Related 相关文章

  1. 1

    在非静态上下文中无法访问静态方法

  2. 2

    从非静态上下文中调用静态方法

  3. 3

    从静态上下文中的 a 调用非静态方法

  4. 4

    在静态上下文中无法访问非静态字段“ lblSystemStatus”

  5. 5

    Android无法更新ArrayAdapter,因为“无法从静态上下文中引用非静态方法'notifyDataSetChanged()'”

  6. 6

    错误:无法从静态上下文中引用非静态方法'findViewById(int)'

  7. 7

    错误:无法在静态上下文中引用非静态方法“ edit”

  8. 8

    错误:无法从静态上下文中引用非静态方法 setListMovie(ArrayList<Movie>)

  9. 9

    无法从静态上下文引用Java非静态方法

  10. 10

    “无法从静态上下文引用非静态方法”错误

  11. 11

    错误:无法从Java的静态上下文中引用非静态变量扫描

  12. 12

    试图让我的显示方法工作(不能从静态上下文中引用非静态方法)

  13. 13

    非静态字段不能从静态上下文中引用-Main方法

  14. 14

    Android:非静态方法不能从静态上下文中引用。使困惑?

  15. 15

    非静态方法isGooglePlayServicesAvailable和getErrorDialog不能从静态上下文中引用

  16. 16

    的java - 非静态方法“getLogger”不能从静态上下文中引用

  17. 17

    非静态方法count(int)不能从静态上下文中引用

  18. 18

    非静态方法不能从静态上下文中引用

  19. 19

    非静态方法getIntent()不能从静态上下文中引用

  20. 20

    不能从静态上下文中引用非静态方法“inflate(byte[],int,int)”

  21. 21

    不能从静态上下文中引用非静态方法 matcher(CharSequence)

  22. 22

    不能从静态上下文中引用非静态方法(尽管已经创建了非静态方法)?

  23. 23

    非静态上下文中的内部枚举

  24. 24

    如何在静态上下文中访问文件?

  25. 25

    Java-无法从静态上下文中引用

  26. 26

    从静态上下文调用非静态方法

  27. 27

    使用.setText在jTextArea上打印将返回错误非静态变量,无法从静态上下文中引用

  28. 28

    HashSet :: add用法不会导致“无法从静态上下文引用非静态方法”

  29. 29

    setDisplayHomeAsUpEnabled()错误:无法从静态上下文引用非静态方法

热门标签

归档