我正在尝试编写一个程序,在用户输入的任何日期之后给出下一个日期。下面的代码是我的NextDate类。我收到一个错误,指出并非所有代码路径都返回了我的GetnextDate方法的值,即使我添加了默认值。我真的不知道发生了什么,任何帮助将不胜感激。谢谢:))
namespace NextDate
{
class Date
{
// Variables
private int date;
private int month;
private int year;
// Methods
public Date(int d, int m, int y)
{
this.date = d;
this.month = m;
this.year = y;
}
// Display methods
public override string ToString()
{
string s;
s = "The date is " + this.date.ToString()
+ "/" + this.month.ToString()
+ "/" + this.year.ToString();
return s;
}
private int GetNextDate(int d, int m)
{
switch(m)
{
case 04:
case 06:
case 09:
case 11:
this.date = 01;
break;
default:
this.date = 31;
break;
}
}
}
}
答案 0 :(得分:3)
没有路径返回值。您的方法应返回int
或返回类型应为void
类型。
答案 1 :(得分:3)
变化
private int GetNextDate(int d, int m)
在
private void GetNextDate(int d, int m)
答案 2 :(得分:3)
错误消息是自我描述的,您没有从方法中返回任何内容,而它应该返回 int 作为返回值({{ 1}})
选项1
如果您只想执行任务,例如在方法中设置值private int GetNextDate(...)
,则不需要该方法的返回值,因此您只需将方法签名更改为:
this.date
选项2
但是基于方法名称获取 NextDate并制作更可重用的方法,最好将方法更改为能够从方法返回int。
你可以这样写:
private void GetNextDate(int d, int m)
并以这种方式使用它:
private int GetNextDate(int d, int m)
{
int date = 31;
switch(m)
{
case 4:
case 6:
case 9:
case 11:
date = 1;
break;
}
return date;
}
答案 3 :(得分:0)
该方法不返回任何内容,但返回类型为int
。
也许您打算返回01
或31
而不是设置this.date
?
return this.date;
或者,如果您想设置它,但不返回任何内容,请将返回类型从int
更改为void
。