Succede che a volte dovete cambiare i nomi degli elementi in un'enum, per esempio, da ConsoleKey.BackSpace a ConsoleKey.Backspace, oppure da ConsoleKey.SpaceBar a ConsoleKey.Spacebar, utilizzando l'attributo Obsolete. Attenzione all'ordine degli elementi con lo stesso valore! L'elemento obsolete deve essere posizionato dopo l'elemento valido dello stesso valore.
Il seguente snippet:
class Test
{
static void Main()
{
Foo f = (Foo)1;
System.Console.WriteLine(f);
}
}
stampa SomeThing a console se l'enum è:
// NO!
public enum Foo
{
[Obsolete("Use Foo.Something.")]
SomeThing = 1,
Something = 1
}
e Something se l'enum è:
// OK!
public enum Foo
{
Something = 1
[Obsolete("Use Foo.Something.")]
SomeThing = 1,
}