【发布时间】:2019-06-26 06:11:38
【问题描述】:
我正在尝试返回歌曲名称、艺术家姓名和销量。唯一似乎在返回中编译的是方法名称,它不可能是正确的,因为它只会导致它成为一个无限循环。
同样在循环中,如何更改 tryparse 使其也不接受负数?
代码如下
namespace Songs
{
class Program
{
static void Main(string[] args)
{
object [] ArrayOfSongs;
ArrayOfSongs = new object[4];
for (int i = 4; i < ArrayOfSongs.Length; i++)
{
ArrayOfSongs[i] = InputSongDetails();
var store = InputSongDetails();
}
Console.WriteLine("Enter an artists name, or press return for all artists");
}
static Song InputSongDetails()
{
Console.WriteLine("What is the name of your song");
string name = Console.ReadLine();
Console.WriteLine("What is the artists name");
string artist = Console.ReadLine();
int records;
Console.WriteLine("How many records did it sell");
while (!int.TryParse(Console.ReadLine(), out records))
{
Console.WriteLine("That is not valid please enter a number");
}
string returns = $"Your song is{name}, the artists name is {artist} and it sold {records} records";
return InputSongDetails();
}
}
}
这是我的歌曲课
namespace Songs
{ 班歌 { 字符串名称; 弦乐艺术家; int 副本已售出;
public Song(string name, string artist, int copiesSold)
{
this.name = name;
this.artist = artist;
this.copiesSold = copiesSold;
}
public Song()
{
}
public string GetArtist()
{
return artist;
}
public string GetDetails()
{
return $"Name: {name} Artist: {artist} Copies Sold: {copiesSold},";
}
public string GetCertification()
{
if (copiesSold<200000)
{
return null;
}
if (copiesSold<400000)
{
return "Silver";
}
if (copiesSold<600000)
{
return "gold";
}
return "Platinum";
}
}
}
【问题讨论】:
-
有一个
TryParse需要一个NumberStyles;NumberStyles包括启用/禁用负片的能力...所以...NumberStyles.Integer & ~NumberStyles.AllowLeadingSign应该可以工作... -
歌曲课在哪里?
-
或更简单的
while (!int.TryParse(Console.ReadLine(), out records) || records < 0) -
for循环永远无法运行,因为数组的长度是4..
-
哇!不错的收获@NineBerry
标签: c#