对于本课程,我试图以3种不同的格式显示日期。 mm-dd-yyyy,yyyy-mm-dd和月dd,yyyy
我一直收到错误"无法从字符串转换为int"当我尝试运行我的程序。但是,我没有在我的任何方法中故意使用字符串。我做错了什么?
using System;
public class Date
{
private int month;
private int date;
private int year;
private int parameter;
public int getmonth()
{
return month;
}
public void setmonth(int m)
{
month = m;
}
public int getdate()
{
return date;
}
public void setdate(int d)
{
date = d;
}
public int getyear()
{
return year;
}
public void setyear(int y)
{
year = y;
}
public int getparameter()
{
return parameter;
}
public void setparameter(int p)
{
parameter = p;
if (p <= 3)
{
if (p == 1)
{
setmonth("1");
setdate(22);
setyear(2015);
}
else if (p == 2)
{
setyear(2015);
setmonth("2");
setdate(20);
}
else if (p == 3)
{
setmonth("March");
setdate(10);
setyear(2015);
}
}
}
}
class DateTest
{
static void Main(string[] args)
{
Date Dave = new Date (1);
Console.WriteLine("The Date is {0}", Dave.getparameter());
Console.WriteLine("Press any key to close");
Console.ReadKey();
}
}
答案 0 :(得分:1)
您正在使用:
setmonth("1");
// ...
setmonth("2");
// ...
setmonth("March");
setmonth的签名是
public void setmonth(int m)
{
month = m;
}
您无法将字符串隐式转换为int。使用setmonth(int.Parse("1"))
等。或者使用int值而不是string来调用它。或者将两者结合起来,可以重载方法:
public void setmonth(int m)
{
month = m;
}
public void setmonth(string m)
{
month = int.Parse(m);
}
使用它你应该能够传递一个int或一个字符串,它将同时工作。
答案 1 :(得分:1)
您正在将字符串传递给在此行上接受int的方法:
setmonth("1");
您将setmonth
定义为采用int:
public void setmonth(int m)
您可以将setmonth
来电更改为
setmonth(1);
同样适用于其他setmonth
次来电。