Wydajność metody rozszerzenia
/*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());
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.