NHibernate プロジェクト (バージョン 3.3.1.4000) のソースを調べていたところ、AnywhereMatchModeクラスに奇妙な点があることに気付きました。
public override string ToMatchString(string pattern)
{
return (string) (object) '%' + (object) pattern + (string) (object) '%';
}
いったいなぜ彼らは char をオブジェクトにキャストし、すぐにそれを文字列に再キャストするのでしょうか? 他の文字列に追加する前に、文字列をオブジェクトにキャストするのはなぜですか? ここにパフォーマンスのボーナスはありますか、それとも避けるべきエッジケースはありますか? 理由があるはずなので、このコードの背後にあるアイデアを探しています。
注: ReSharper の"Navigate To" 機能を使用してここにたどり着いたので、これは私が見ている逆コンパイルされたコードである可能性があります。そうだとしても、ここで何が起こっているのか知りたいです。