Posso aggiungere un enum a una struttura .NET esistente, come Date?

Quindi apparentemente Microsoft non ha un enum di mesi nella loro struttura Date.
Quello che mi chiedo è, è ansible creare un enum e collegarlo alla struttura DateTime? I metodi di estensione vengono subito in mente, ma non conosco un modo per rimuoverli usando questi.

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 

Qualcuno ha qualche idea su questo?

Aggiornamento: non sto cercando di ottenere il nome del mese del mese corrente o di una data specifica. So come farlo. Stavo solo cercando di creare una class che avesse una proprietà Month e volevo usare un Enum per rappresentare il mese. Dato che questo sembra un object che potrebbe avere utilità altrove, odio mettere l’Enum nella mia class e preferirei che fosse “localizzato” nella struttura a cui è direttamente correlato in modo da poterlo trovare facilmente. Grazie per tutte le risposte. Avrei dovuto essere più chiaro di fronte a ciò che volevo fare.

Non è ansible aggiungere proprietà a un tipo esistente come quello.

Tuttavia, è ansible aggiungere un metodo di estensione che convertirà da interi al valore Enum corrispondente o semplicemente restituirà il valore enum corrispondente al mese.

Potresti aggiungere un’estensione come questa:

 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(); } } 

Stub metodo di estensione:

 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(); } } 

usi:

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