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: )

questionAnswers(5)

yourAnswerToTheQuestion