Enum と拡張メソッド <3
Enum と拡張メソッドって相性がいいですね。MSDN ライブラリでも取り上げられてますけど。
enum MyEnum { A, B } と定義した enum を文字列化するときに日本語にしたいことがよくあって、static な関数を書いてたけど、拡張メソッドでちょっとだけきれいになりますね。
using System; class Program { static void Main() { var e = MyEnum.A; Console.WriteLine( e.ToString() ); Console.WriteLine( e.ToStringExt() ); Console.ReadKey(); } } public enum MyEnum { A, B } public static class MyEnumExt { public static string ToStringExt( this MyEnum e ) { switch ( e ) { case MyEnum.A: return "え〜"; case MyEnum.B: return "びぃ"; default: throw new ArgumentOutOfRangeException( "e" ); } } }
拡張メソッドの名前は ToString だと enum の ToString が呼ばれてしまったので、ToStringExt にしました。無念。
enum の ToString はめちゃくちゃ遅いのでご注意を。MSDN ライブラリにも明記されています。↑の拡張メソッドと ToString のマイクロベンチしてみたら、拡張メソッドのほうが878倍ハヤカッタ。