Czy Structs jest „szybszy” niż klasy - ogólnie czy w ramach .NET?
Ponieważ struktury są typami wartości, ich dane sąskopiowane kiedy przekazany do metody jako argument. Przykład:
int someInt = 7;
DoSomeMethod(someInt); // <-- This is passing the "value" 7.
Jak dotąd, łatwe do zrozumienia i prawdopodobnie zastanawiasz się, jak moje pytanie jest poprawne ... rozważ więc:
public struct TimmysStructOfGoodness
{
public int SomeInt1;
public int SomeInt2;
public int SomeInt3;
// ... later that day ...
public int SomeInt999;
}
a następnie, w odniesieniu do następującego kodu:
TimmysStructOfGoodness someStructOfGoodness = new blah blah blah...
DoSomeMethod(someStructOfGoodness); // <-- **HERE IS WHERE THE QUESTION APPLIES!**
Czy powyższe stwierdzenie próbuje przydzielić kilka megabajtów pamięci RAM do „skopiowania” mojego typu wartości (struct)?
Jeśli odpowiedź brzmi „tak”, to kiedy / gdzie jest linia między „szybszym” a „wolniejszym”?
Jeśli nie - to dlaczego nie? Ponieważ to, co znam typów wartości, powinno to stanowić problem.
GŁÓWNE OŚWIADCZENIE: Wiem, że nie ma to nic wspólnego z tym, dlaczego użyłbyś strukturalnych wersów klasy, i wiem, że nigdy nie utworzę struktury z 999 polami - jest to tylko kwestia podstawowych wewnętrznych i wewnętrznych elementów i tym podobnych: )