czytałem przez źródeł .NET kiedy znalazłem to:.NET zmienna lokalna optymalizacja
// Constructs a Decimal from an integer value.
//
public Decimal(int value) {
// JIT today can't inline methods that contains "starg" opcode.
// For more details, see DevDiv Bugs 81184: x86 JIT CQ:
// Removing the inline striction of "starg".
int value_copy = value;
if (value_copy >= 0) {
flags = 0;
}
else {
flags = SignMask;
value_copy = -value_copy;
}
lo = value_copy;
mid = 0;
hi = 0;
}
Jak widać, konstruktor przecinku kopii struktury metoda argument do zmiennej lokalnej zamiast używać bezpośrednio. Zastanawiałem się, co oznacza komentarz i jak odnosi się do optymalizacji wydajności?
Zgaduję, że jeśli chcesz zmodyfikować istniejący argument, metoda nie może być już inline?
http://referencesource.microsoft.com/#mscorlib/system/decimal.cs#f9a4da9d6e110054#references
więc w zasadzie odpowiedź na to pytanie jest twierdząca. Zacząłem od tego i dodałem wyjaśnienie. – Clueless
miła odpowiedź sir ... –
@ Clueless: Dzięki za sugestię! Dodałem odpowiedź TL; DR. Mam tę irytującą tendencję do dawania długich odpowiedzi, których nie mogę pozbyć się. :) – stakx