我正在参加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();
}
}
}
答案 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();
}
}
}
我刚测试了这个程序。您输入一个号码,然后您就会收到回复。很好地工作。 (为了它的简单目的:-))