【问题标题】:something C# writing multiplying code in static一些 C# 在静态中编写乘法代码
【发布时间】:2019-11-11 13:34:14
【问题描述】:

首先,如果这个问题已经被问到,我深表歉意。这是我第一次在 stackoverflow 上提问。

所以,我目前正在学习 C#,并决定编写一段代码来练习。 结果就是这个怪物:

static class Calculator
{
    public static int multiply;

    public static int Sum(int times1, int times2)
    {

        multiply= times1 * times2;
        return multiply; 
    }  

    public new static string ToString()
    {
        return $"this is the result of a calculation/multiplication: {multiply}";
    }
}

很整洁吧?它应该返回一个简单的乘法并使用覆盖 ToString 方法将其打印在主字符串中(但由于不能在静态中完成,我创建了一个新的并使用它)。

 class Program
{
    public static void Main(string[] args)
    {
        Console.WriteLine(Calculator.ToString());
    }

}

这就是问题出现的地方,因为控制台简单地说:

这是计算/乘法的结果:0

即使我将值分配给“times1”和“times2”,结果也是相同的。 我无法弄清楚我在这里做错了什么,有人可以帮助我吗?

【问题讨论】:

  • 您从未调用过Sum,所以multiply 仍保持其原始值 - 0
  • 你的程序没有在任何地方调用Sum()
  • 我明白了,我试试看。

标签: c#


【解决方案1】:

乘法不包含值。首先调用 Sum 函数,用任何你想相乘的数字,然后你就可以写出结果了。

class Program
{
    public static void Main(string[] args)
    {
        Calculator.Sum(2, 4);
        Console.WriteLine(Calculator.ToString());
    }

}

【讨论】:

    【解决方案2】:

    这是由于 static 关键字。因此,基本上,您的新静态方法 ToString()(不是最好的名称)对 Sum 执行后返回的乘法一无所知,

    1. 根本不要使用静态

    2. 直接在ToString()中进行计算(建议重命名=))

    【讨论】:

      猜你喜欢
      • 2017-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-05
      • 2020-02-19
      • 2017-10-13
      • 1970-01-01
      相关资源
      最近更新 更多