<p>Is it possible to define an implicit conversion of enums in c#?</p>

<p>something that could achieve this?</p>

<pre><code>public enum MyEnum
{
    one = 1, two = 2
}

MyEnum number = MyEnum.one;
long i = number;
</code></pre>

<p>If not, why not?</p>

If you define the base of the enum as a long then you can perform explicit conversion. I don't know if you can use implicit conversions as enums cannot have methods defined on them.
```
```
public enum MyEnum : long
{
    one = 1,
    two = 2,
}

MyEnum number = MyEnum.one;
long i = (long)number;
```
```
Also, be aware with this that an uninitalised enumeration will default to the 0 value, or the first item - so in the situation above it would probably be best to define
```
zero = 0
```
as well.