2014-12-13 89 views
0

我有一個任務,我必須得到一個日期,然後以不同的格式(MM/DD/YYYY,DD/MM/YYYY,DD月YYYY等等)顯示它... )。這幾個月必須枚舉,我必須在一個單獨的類Date。我試着首先將枚舉轉換爲帶有switch的字符串,但是當我從控制檯解析數字時總是出現錯誤。 下面是代碼:在控制檯中顯示枚舉C#

枚舉月{一月= 1,Fabruary,三月,四月,五月,六月,七月,八月,九月,十月,
十一月,十二月}

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

靜態無效的主要(字符串[]參數)

{ 
     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); 
    } 
+0

確切的錯誤是什麼?在哪一行? – 2014-12-13 14:18:07

+0

它說錯誤在這一行 'date.PrintMonth(m_Month);' – user3144416 2014-12-13 14:20:51

+0

int x =(int)Month? – Codeek 2014-12-13 14:21:52

回答

1

你只需要編寫枚舉值:

enum Month 
{ 
    January=1, 
    February=2 
} 
static void Main(string[] args) 
{ 
    Console.WriteLine(((Month)1)); 
} 

所以你PrintMonth可以採取一個int或一個月值,一個ToString()的枚舉返回其字符串表示。

+0

它的工作,非常感謝! – user3144416 2014-12-14 23:44:06

0
m_Month = (Month)month; 
     date.PrintMonth(m_Month.ToString()); 

但它的實施方式不正確。您應該使用Enum.Parse或Enum.TryParse並使用(int)Enum獲取整數值並使用Enum.ToString()獲取字符串值

+0

也謝謝! – user3144416 2014-12-14 23:44:34