C# 在C中使用方法返回int值#

C# 在C中使用方法返回int值#,c#,string,methods,int,return,C#,String,Methods,Int,Return,我要上一堂c#编程课,这是我们的第一周,我想提前一点学习。为此,我正试图重做我们的一个课堂实验,并坚持使用我的“GetInt”方法 理想情况下,GetInt方法(第50行)接受一个字符串(输入一个数字)并将该数字作为int返回,这样我就可以使用它进行一些计算。目前,第24行将测试错误“无法隐式转换类型”int“为”string“ 感谢您的帮助。我是个新手,所以请不要以为我知道什么。 多谢各位 using System; using System.Collections.Generic; usin

我要上一堂c#编程课,这是我们的第一周,我想提前一点学习。为此,我正试图重做我们的一个课堂实验,并坚持使用我的“GetInt”方法

理想情况下,GetInt方法(第50行)接受一个字符串(输入一个数字)并将该数字作为int返回,这样我就可以使用它进行一些计算。目前,第24行将测试错误“无法隐式转换类型”int“为”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();
    }
}

}问题在于方法
GetInt
返回
int

您试图将其返回值赋给第24行的字符串变量

String numDonuts

您不能这样做。

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

String numDonuts=GetInt(“您想要多少个甜甜圈?”:”


int numDonuts=GetInt(“您想要多少甜甜圈?:”

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

您的问题在于:

    String numDonuts = GetInt("How many donuts would you like?: ");
您尝试将int值设置为字符串变量

改为

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

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();
    }
}
}

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

当然,在我发布我的问题后,我马上找到了答案。我需要声明第24行是“INT”而不是“String”,因为我要求返回INT,而不是String。我希望这是正确的。我的代码现在可以工作了,在第24行将“string”一词改为“int”。谢谢——我一贴出来就意识到我做了什么。我想我只是需要去别的地方看看,把靴子放在我需要的头上。非常感谢。谢谢你的帮助,我在贴出问题后就想出来了。尽管如此,还是要感谢你的帮助——你能帮助别人真是太棒了,我也很感激。干杯