【发布时间】:2015-02-12 02:46:03
【问题描述】:
我有一个任务,我必须得到一个日期,然后以不同的格式显示它(MM/DD/YYYY、DD/MM/YYYY、YYYY 月份的 DD 等等......)。月份必须是枚举,我必须在单独的课程中进行 Date。我首先尝试使用switch 将枚举转换为字符串,但总是在我从控制台解析数字时出现错误。
代码如下:
enum Month { January = 1, Fabruary, March, April, May, June, July,August, September, October,
十一月,十二月}class Date { private int m_Day, m_Year; private Month m_Month; public Date(int day, Month month, int year) { this.m_Day = day; this.m_Month = month; this.m_Year = year; } public void Print() { string month = ""; Console.WriteLine(PrintMonth(month)); } public string PrintMonth(string month) { int x = (int)Month; switch (x) { case 1: month = "January"; break; case 2: month = "Fabruary"; break; case 3: month = "March"; break; case 4: month = "April"; break; } return month; } public int Day { get { return m_Day; } set { if(Day>=0&&Day<=31)m_Day = value; } } public Month Month { get { return m_Month; } set { if (Month >= Month.January && Month <= Month.December)m_Month = value; } } public int Year { get { return m_Year; } set { m_Year = value; } } }
这就是Main 块
static void Main(string[] args)
{ int m_Day=0, m_Year=0; Month m_Month=0; Date date = new Date(m_Day,m_Month,m_Year); int month = int.Parse(Console.ReadLine()); m_Month = (Month)month; date.PrintMonth(m_Month); }
【问题讨论】:
-
究竟是什么错误?在哪条线上?
-
表示错误在这一行
date.PrintMonth(m_Month); -
该方法采用
string。你给它一个enum。