【问题标题】:Use method to Return value int in C#在 C# 中使用方法返回值 int
【发布时间】:2014-01-30 16:50:56
【问题描述】:

我正在学习 c# 编程课程,这是我们的第一周,我正在努力提前一点。为此,我正在尝试重新设计我们的一个课堂实验室,并坚持使用我的“GetInt”方法。

理想情况下,GetInt 方法(第 50 行)接收一个字符串(输入一个数字)并将该数字作为 int 返回,这样我就可以用它来做一些数学运算。目前第 24 行将测试错误 'Cannot implicity convert type 'int' to 'string'.

感谢任何帮助。我是个新手,所以请不要以为我什么都知道。 谢谢。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace lec022_If_statement_int
{
class Program
{
    //Set to public so it is visible
    //void because it returns nothing
    //Play is a method within the class Program I've added
    public void Play()
    {
        DisplayStr("Lecture 2c | If Statements with ints");
        DisplayReturns();

        DisplayStr("Welcome to Dunut King");
        DisplayReturns();

        //Collect User Name
        //GetString converts to lower, trims
        String numDonuts = GetInt("How many donuts would you like?: ");
        DisplayReturns();

        //Display welcome
        Console.WriteLine("You asked for " + numDonuts + " donuts.");
        DisplayReturns();

        DisplayReturns();
        DisplayStr("Have a great Day!");
    }



    //MaxBox 2.0
    public void DisplayStr(String StrTxt)
    { Console.Write(StrTxt); }

    public void DisplayReturns()
    { Console.Write("\n\n"); }

    public string GetString(String StrVar)//note - using strings here
    {
        Console.Write(StrVar);
        return Console.ReadLine().ToLower().Trim();
    }

    public int GetInt(string intVar)//note - using ints here
    {
        Console.Write(intVar);
        return int.Parse(Console.ReadLine());
    }

    //Initiate Program
    static void Main(string[] args)
    {
        Program myProgram = new Program();
        myProgram.Play();

        Console.Read();
    }
}

}

【问题讨论】:

  • 当然,在我发布我的问题之后,我就找到了答案。我需要说明第 24 行是“INT”而不是“字符串”,因为我要求返回 INT,而不是字符串。我希望这是正确的。通过在第 24 行将单词“string”更改为“int”,我的代码现在可以工作了。

标签: c# string methods int return


【解决方案1】:

您的 GetInt 方法返回整数类型,因此您应该使用整数类型来存储它,而不是字符串。

这里是固定代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;



namespace lec022_If_statement_int
{
class Program
{
    //Set to public so it is visible
    //void because it returns nothing
    //Play is a method within the class Program I've added
    public void Play()
    {
        DisplayStr("Lecture 2c | If Statements with ints");
        DisplayReturns();

        DisplayStr("Welcome to Dunut King");
        DisplayReturns();

        //Collect User Name
        //GetString converts to lower, trims
        int numDonuts = GetInt("How many donuts would you like?: ");
        DisplayReturns();

        //Display welcome
        Console.WriteLine("You asked for " + numDonuts + " donuts.");
        DisplayReturns();

        DisplayReturns();
        DisplayStr("Have a great Day!");
    }



    //MaxBox 2.0
    public void DisplayStr(String StrTxt)
    { Console.Write(StrTxt); }

    public void DisplayReturns()
    { Console.Write("\n\n"); }

    public string GetString(String StrVar)//note - using strings here
    {
        Console.Write(StrVar);
        return Console.ReadLine().ToLower().Trim();
    }

    public int GetInt(string intVar)//note - using ints here
    {
        Console.Write(intVar);
        return int.Parse(Console.ReadLine());
    }

    //Initiate Program
    static void Main(string[] args)
    {
        Program myProgram = new Program();
        myProgram.Play();

        Console.Read();
    }
}
}

我刚刚测试了这个程序。你输入一个数字,你就会得到回应。效果很好。 (因为它的目的很简单:-))

【讨论】:

  • 感谢您的帮助,我在发布问题后就想通了。不过,谢谢你的帮助——你能像这样帮助别人真是太棒了,我对此表示感谢。干杯!
【解决方案2】:

你的问题在那里:

    String numDonuts = GetInt("How many donuts would you like?: ");

您尝试将 int 值设置为字符串变量。

改成

var numDonuts = GetInt("How many donuts would you like?: ");

【讨论】:

    【解决方案3】:

    将第 24 行的第一个单词从“String”更改为“int”,因为我要求的是 int 而不是字符串。

    【讨论】:

      【解决方案4】:

      您的GetInt 方法返回int。所以你需要从

      String numDonuts = GetInt("How many donuts would you like?: ");

      int numDonuts = GetInt("How many donuts would you like?: ");

      【讨论】:

      • 谢谢 - 我一发布就意识到我做了什么。我想我只是需要在其他地方看到它才能让靴子到达我需要的头部。谢谢!
      【解决方案5】:

      问题在于方法GetInt返回int

      你正试图在第 24 行将它的返回值分配给这个 String 变量。

      String numDonuts
      

      你不能这样做。

      【讨论】:

        猜你喜欢
        • 2020-03-13
        • 1970-01-01
        • 1970-01-01
        • 2012-11-04
        • 2018-04-08
        • 1970-01-01
        • 2012-06-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多