我可以在现有的.NET结构中添加枚举,比如Date吗?

显然,微软的日期结构没有月份枚举。
我想知道的是,是否可以创建枚举并将其附加到DateTime结构? 扩展方法立即浮现在脑海中,但我不知道如何使用它们来解决这个问题。

Dim july As DateTime.Months = DateTime.Months.July Public Enum Months January = 1 February = 2 March = 3 April = 4 May = 5 June = 6 July = 7 August = 8 September = 9 October = 10 November = 11 December = 12 End Enum 

有没有人对此有任何想法?

更新:我没有尝试获取当前月份或给定日期的月份名称。 我知道该怎么做。 我只是想创建一个具有Month属性的类,并希望使用Enum来表示月份。 由于这似乎是一个可以在其他地方使用的项目,我讨厌将Enum放入我的class级,而宁愿让它“定位”在与其直接相关的结构中,以便可以轻松找到它。 谢谢你的回复。 我应该更清楚地了解我想做什么。

您无法向现有类型添加属性。

但是,您可以添加一个将从整数转换为相应枚举值的扩展方法 ,或者只返回与月份对应的枚举值。

你可以添加这样的扩展名:

 public static class DateTimeExtension { public static Months GetMonth(this Date dt) { return (Months)dt.Month; } public static Months GetMonthStr(this Date dt) { return ((Months)dt.Month).ToString(); } } 

扩展方法存根:

 public static class DateTimeExtensions { public static string GetMonthName(this DateTime dateTime) { // add using System.Globalization; return DateTimeFormatInfo.GetMonthName(dateTime.Month); } public static Months GetMonth(this DateTime dateTime) { return (Months)dateTime.GetMonthName(); } } 

用途:

 DateTime mydate = dateTime.Now; string month = mydate.GetMonthName(); Months name = mydate.GetMonth();