Recentemente ho visto un progetto che stava usando questo stile:Casting per enum vs. Enum.ToObject
(SomeEnum)Enum.ToObject(typeof(SomeEnum), some int)
al posto di questo stile:
(SomeEnum)some int
Perché utilizzare l'ex? È solo una questione di stile?
Da MSDN:
Questo metodo di conversione restituisce un valore di tipo Object. È quindi possibile eseguire il cast dello o convertirlo in un oggetto di tipo enumType.
https://msdn.microsoft.com/en-us/library/ksbe1e7h(v=vs.110).aspx
Mi sembra che MSDN mi dice che devo chiamare ToObject(), e poi posso pressofuso. Ma sono confuso perché so che posso lanciare senza chiamare quel metodo. Qual è lo scopo di ToObject()? Cosa fa che il semplice casting non lo fa?
codice non ha senso. Puoi lanciare un enum a un numero, ma non un numero di enum. Il giorno della settimana per zero dovrebbe essere DayOfWeek.Sunday non il numero zero. – jdweng
Ho dichiarato esplicitamente che era uno stile di codifica alla prima frase. Ovviamente il codice non ha senso. Era solo per illustrare. Sto chiedendo qual è lo scopo di Enum.ToObject(). Cosa fa che il semplice casting non lo fa? – HelloWorld
Nessuna idea, ma il fatto che questo metodo fosse in .NET 1.1 potrebbe dare un suggerimento. C'è un sacco di cose da quei giorni che non dovrebbero essere più utilizzate (guardandoti con 'ArrayList') – BradleyDotNET