如何将包含两个整数的字符串添加到 class 并显示总和

How to add to a class a string with two integers and show the sum

各位程序员大家好!

我目前正在学习软件开发(我不是一个月前开始的),我有一个问题需要解决。您可以在下面找到代码,如您所见,方法 WriteNumber 需要帮助。我需要以一种方式编写代码,当我 运行 程序时,在控制台屏幕上将显示以下两行: 你好世界! 81 Main 方法代码无法更改,而且我无法向 class 计算器添加更多方法,因此代码只需要在 WriteNumbers 方法中完成。我已经尝试了很多东西,但我仍然掌握一切是如何工作的,所以欢迎任何帮助!预先感谢您的宝贵时间。

Namespace CalculatorTest
{

class Calculator
{
    public static string WriteText (string input)
    {
        return "" + input;
    }
    public static string WriteNumber()
    {


    }
}

class Program
{
    static void Main(string[] args)
    {
        string s = Calculator.WriteText("Hello World!");
        Console.WriteLine(s);

        string n = Calculator.WriteNumber(53 + 28);
        Console.WriteLine(n);

        Console.Read();
    }
}

不是为了让你做功课copied/pasted,希望我能给你一些提示...

注意方法是如何被调用的:

Calculator.WriteNumber(53 + 28)

53 + 28 部分首先发生,然后该操作的 结果 被传递给方法。结果自然是81。重要的是它的类型,它是一个整数。

因此,合理地,方法签名需要接受一个 int 作为参数。这将非常完成,类似于其他方法接受string作为参数的方式:

public static string WriteText(string input)

那么,该方法与该输入有什么关系?好吧,它只是一个单一的值,所以不需要对它执行任何计算。 似乎 该方法只需要 return 值作为 string。 (这是你的作业所以你告诉我,对吗?)

这可以通过两件事来完成:

  • 对值
  • 调用.ToString()
  • 使用 return 关键字 return 该操作的结果

(注意:.ToString() 操作对值类型做了一些非常直观的事情,例如 intdoublebool。随着您逐渐使用引用类型, 你会发现它做了一些非常不同的事情。任何时候你有一个自定义 class 想要调用 .ToString(), 你需要重写 .ToString() 方法首先是class。)

请阅读 David 的回答,重要的是您要努力理解为什么它会这样工作。也就是说:

public static string WriteNumber(int number)
{
   return number.ToString();
}

感谢大家的宝贵意见,但要特别感谢 David,因为他指出了我的错误所在。我忘记了 main 函数中的两个数字将首先求和,然后转发给 class 计算器中的方法。弄清楚之后,就很容易理解要做什么了(基本上是将输入参数的类型调整为int)。

namespace CalculatorTest
{

class Calculator
{
    public static string WriteText (string input)
    {
        return "" + input;
    }
    public static string WriteNumber(int sumOfNumbers)
    {
        return "" + sumOfNumbers;                 
    }
}

class Program
{
    static void Main(string[] args)
    {
        string s = Calculator.WriteText("Hello World!");
        Console.WriteLine(s);

        string n = Calculator.WriteNumber(53 + 28);
        Console.WriteLine(n);

        Console.Read();
    }
}

}