mio opinione su di esso è che sono lì per aiutare evitare numeri magici.
I numeri magici sono praticamente ovunque nel codice in cui si dispone di un numero in sospeso. Per esempio:
int i = 32;
Questo è problematico, nel senso che nessuno può dire il motivo per cui i è sempre impostato a 32, o che cosa significa 32, o se dovrebbe essere 32 a tutti. È magico e misterioso.
In modo simile, io spesso vedere il codice che fa questo
int i = 0;
int z = -1;
perché sono essere impostato a 0 e -1? È solo una coincidenza? Significano qualcosa? Chissà?
Mentre Decimal.One
, Decimal.Zero
, ecc Non vi dico che cosa i valori medi nel contesto dell'applicazione (forse zero significa "mancante", ecc), si fa che il valore è stato deliberatamente dire, e probabilmente ha un significato.
Pur non essendo perfetto, questo è molto meglio di quanto non dicendo nulla :-)
Nota E 'Non per l'ottimizzazione. Osservare questo codice C#:
public static Decimal d = 0M;
public static Decimal dZero = Decimal.Zero;
Se si guarda alla bytecode generato utilizzando ildasm, entrambe le opzioni risultano in identici MSIL. System.Decimal
è un tipo di valore, quindi Decimal.Zero
non è più "ottimale" di un semplice valore letterale.
fonte
2009-04-13 22:23:43
Non credo che queste risposte spieghino adeguatamente il motivo per cui questi valori sono presenti. Sto ascoltando alcuni effetti e l'utilizzo, ma quello che sto cercando è WHY è stato progettato nel linguaggio, e perché non è lì in Float, per esempio, o Int32 ... – Jasmine