明示的および暗黙的なキャスト演算子を公開するオブジェクトを作成しています。コード分析では、一致する名前付きメソッドも作成することが提案されました ( CA2225: 演算子のオーバーロードには代替の名前が付けられています)。また、引数としてIConvertible
を受け取りますが、多数の ToXXX メソッドを含むを実装することにIFormatProvider
しました。
これらのほとんどは同じコードを実行する別の方法であるため、リリース モードでコンパイルするときに、パフォーマンスの問題を無効にするために呼び出しを最適化/インライン化して、コードを繰り返す必要がないかどうか疑問に思っています。
例えば:
public byte ToByte()
{
// My code that I don't want to copy/paste.
}
public static explicit operator Byte(MyObject obj)
{
return obj.ToByte();
}
byte IConvertible.ToByte(IFormatProvider provider)
{
return ToByte(); //I don't care about the provider in this case.
}