CA2225, IConvertible и выпуск сборки сборки
Я создаю объект, который предоставляет явные и неявные операторы приведения. Анализ кода предложил мне также создать именованные методы для сопоставления ( 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.
}