静态方法中的实例变量?怎么样?

时间:2017-01-07 17:49:05

标签: c#

我有一项任务,我不知道如何完成。尝试谷歌和一切,仍然不知道。

作业是:

  

创建一个类计算器包含以下内容:

     
      
  • 常数pi(完成)
  •   
  • 接受以下两个整数的构造函数:operand1和operand2(done)
  •   
  • 打印出operand1和operand2(已完成)的值的方法
  •   
  • 操作数1和操作数2的加法,减法,乘法和除法的实例方法(完成)
  •   
  • 用于接受operand1和operand2作为参数的相同操作的静态方法(未完成)
  •   
  • 用pi和operand1(完成)计算圆的面积的实例方法
  •   
     

在main方法中创建类Calculator的对象并调用所有方法并在控制台中写入所有方法的结果。

我不想让任何人为我编写代码,我只需要指导如何将operand1和operand2作为静态方法中的参数,因为我不知道如何启动。

我尝试了以下代码:

public static int add(operand1, operand2)
{
    return operand1 + operand2;
}

并收到以下错误:

  

预期的标识符,非静态字段,方法或属性需要对象引用。

4 个答案:

答案 0 :(得分:2)

静态方法无法访问成员vaiables。它们在类的名称空间下表现为函数,而不是实例方法。赋值规范声明您应该接受两个参数。因此,在调用静态方法时需要提供它们。换句话说,更多地考虑你的方法签名是什么样的。

答案 1 :(得分:0)

  

用于接受operand1和operand2作为参数的相同操作的静态方法(未完成)

static methods将如下所示:

public static void Add(int operand1, int operand2) { … }

注意:int替换您正在使用的任何数字类型。

这些方法应该做什么?最有可能实例化Calculator本身,执行添加并打印结果。

为什么会有这样的假设?使用静态方法来表示相同的操作,否则实现为类方法是一次性使用的常用快捷方式,封装instatiation 执行该行动。

实际实施留作OP的例外。

答案 2 :(得分:0)

您的计算器类应该有静态方法

public static return_type Method(parm_type parm1, parm_type parm2)

在该方法中,您将可以访问parm1和parm2,这是您将要执行的操作。

答案 3 :(得分:-1)

静态方法的创建方式如下:

public class Class1
{
    // For example: 
    // public static string GetFullName(string first, string last)
    // In example above return type is string and it has 2 string parameters

    public static <return type> NameOfMethod(parameterType parameterValue, ...)
    {
        // Code here
        // This code can only access other static fields, properties and 
        // methods. It cannot access anything non static (instance).
    }
}

要调用该方法,可以使用类名调用它,因为静态方法只能通过类名访问,而不能通过对象实例访问:

Class1.NameOfMethod(arg1, ...);

我不会为您编写代码,因为您说您不想要代码,但在静态方法中,您将有2个参数:operand1operand2