Claude Fable 5 が教えてくれた FastEnum の高速化テクニック (3)
DRANK
引き続き Claude Fable 5 を利用した FastEnum のパフォーマンスチューニングについて解説していきます。今回は引数なし .ToString() の利用についてです。該当の Pull-Request は以下。 Fable 5 が教えてくれた高速化テクニックたち文字列のハッシュ値生成数値の範囲チェック引数なし .ToString() の利用 (← イマココ前提知識.NET の enum は、未定義値を受け付けることができます。お行儀が良いとは言えませんが、以下のようなものです。未定義値の利用// こういう定義があるとして... public enum Fruits { Apple = 1, } // こんな利用ができる var apple = (Fruits)1; var undefined = (Fruits)2; そしてこれらを .ToString() すると次のように出力されます。未定義値でも特に例外が発生したりはせず、数値として文字列化されます。これが標準的な挙動です。Enum.ToString() の挙動// これは暗黙的に .ToString() が呼び出される Console.WriteLine(apple); // Apple Console.WriteLine(undefined); // 2 改善前FastEnum も先の挙動に準じた実装がされています。必要な部分だけをピックアップすると以下のような感じになっています。[MethodImpl(MethodImplOp…