[英]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.