繁体   English   中英

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

[英]Use method to Return value int in C#

我正在用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 所以你需要改变

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

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

问题在于方法GetInt返回int

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

String numDonuts

你不可以做这个。

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

您的问题在那里:

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

我刚刚测试了该程序。 您输入一个数字,您会得到一个答复。 效果很好。 (出于简单的目的:-))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM