Subject: Your EVO is ready to ship. See Status

From: EVO Brain Health <[email-masked]>
Date: Thu, 05 Jun 2014 12:28:33 -0700

For: [email-masked]

Please tell us where to ship your bottle-of EVO:
http://www.oilmis.com/s-4532723452345/your-btl.html

Highlights:
-Instantly increases short term memory.
-Double your energy levels.
-Drastically increase long term memory.
- http://www.oilmis.com/s-4532723452345/your-btl.html

EVO Partners > 1505_Wood_Lane~Green_Bay~WI 
~Settings/rem http://www.oilmis.com/index.html 

Thank You.

I thought that conversions between numerical types and enumeration values are only allowed via casts? That is I could write Foo value2 = (Foo) 1.0; so that line 2 in Main can compile. Why is there an exception for the value 0.0 in C#?

I've spoken with the C# team about this before: they'd have liked to have removed the accidental conversion from 0.0 (and indeed 0.0m and 0.0f) to enum values, but unfortunately I gather it broke too much code - even though it should never have been allowed in the first place.

The Mono mcs compiler prohibits all of these floating point conversions, although it does allow:

const int Zero = 0;
..

SomeEnum x = Zero;