Wydajność metody rozszerzenia
<code> /*I have defined Extension Methods for the TypeX like this*/ public static Int32 GetValueAsInt(this TypeX oValue) { return Int32.Parse(oValue.ToString()); } public static Boolean GetValueAsBoolean(this TypeX oValue) { return Boolean.Parse(oValue.ToString()); } TypeX x = new TypeX("1"); TypeX y = new TypeX("true"); //Method #1 Int32 iXValue = x.GetValueAsInt(); Boolean iYValue = y.GetValueAsBoolean(); //Method #2 Int32 iXValueDirect = Int32.Parse(x.ToString()); Boolean iYValueDirect = Boolean.Parse(y.ToString()); </code>
Nie daj się ponieść typie, mówiąc, że powinienem zdefiniować te metody w TypeX, a nie w Extension).
Chciałem przekonwertować TypeX na Int lub Boolean i ta operacja jest jedną wspólną rzeczą, którą robię w wielu miejscach w kodzie. Chciałem wiedzieć, czy to spowoduje pogorszenie wydajności. Próbowałem interpretować kod IL za pomocą reflektora, ale nie jestem w tym dobry. Może być tak, że powyższy przykład nie spowoduje pogorszenia wydajności. Ogólnie chciałem wiedzieć o implikacjach związanych z wydajnością podczas korzystania z metod rozszerzenia.