在控制台 C# 中显示枚举
本文关键字:显示 枚举 控制台 | 更新日期: 2023-09-27 18:34:05
我有一个作业,我必须得到一个日期,然后以不同的格式显示它(MM/DD/YYYY,DD/MM/YYYY,月份的dd YYYY等等......月份必须是枚举,我必须在单独的类Date
中制作它。我首先尝试将枚举转换为带有switch
的字符串,但当我从控制台解析数字时总是出现错误。这是代码:
枚举月 { 一月 = 1, 法布鲁里, 三月, 四月, 五月, 六月, 七月, 八月, 九月, 十月,
11月、12月 }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); }
你只需要写枚举值:
enum Month
{
January=1,
February=2
}
static void Main(string[] args)
{
Console.WriteLine(((Month)1));
}
所以你的 PrintMonth 可以采用 int 或 Month 值,枚举的 ToString() 返回其字符串表示形式。
m_Month = (Month)month;
date.PrintMonth(m_Month.ToString());
但它不是正确的实施方式。您应该使用 Enum.Parse 或 Enum.TryParse 并使用 (int)Enum 获取整数值,并使用 Enum.ToString() 获取字符串值