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

时间:2014-01-11 18:06:48

标签: c# string methods int return

我正在参加c#的编程课,这是我们的第一周,我正在努力提前一点。为此,我正在尝试修改我们的一个班级实验室,并坚持使用我的'GetInt'方法。

理想情况下,GetInt方法(第50行)接受一个字符串(输入一个数字)并将数字作为int返回,这样我就可以用它来做一些数学运算。目前第24行将测试错误'Can not implicity convert type'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();
    }
}

}

5 个答案:

答案 0 :(得分:4)

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

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

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

答案 1 :(得分:1)

问题是方法GetInt会返回int

您正尝试将其返回值分配给第24行的此String变量。

String numDonuts

你不能这样做。

答案 2 :(得分:1)

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

答案 3 :(得分:1)

你的问题在那里:

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

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

更改为

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

答案 4 :(得分: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();
    }
}
}

我刚测试了这个程序。您输入一个号码,然后您就会收到回复。很好地工作。 (为了它的简单目的:-))