Spisu treści:
Definicja - Co oznacza Sizeof Operator?
Operator Sizeof, w języku C #, jest operatorem służącym do określania wielkości (w bajtach) typu niezarządzanego, który nie jest typem odniesienia.
Podczas opracowywania aplikacji wymagających dynamicznego przydzielania pamięci bardzo często zdarza się, że pamięć jest przydzielana do określonego typu. Przyjmowanie wielkości typu i stosowanie wartości zakodowanej na stałe w aplikacji jest bardzo niebezpieczne, ponieważ może to spowodować uszkodzenie aplikacji po przeniesieniu do różnych systemów. Operator sizeof jest używany w takich przypadkach do znalezienia rozmiaru złożonego typu danych, takiego jak struct. Można go jednak używać tylko do obliczania wielkości bajtów typów wartości, a nie typów referencyjnych ze względu na zwirtualizowany układ układu typów w .NET Framework.
Operator sizeof pomaga w alokacji pamięci dla struktur danych przekazywanych z zarządzanej aplikacji do niezarządzanego kodu, takiego jak Interop, niestandardowa serializacja itp. Operatory zwiększania i zmniejszania, które działają na wskaźnikach, używają wewnętrznie operatora sizeof do zwiększania lub zmniejszania zawartego adresu w zmiennej wskaźnika o wartości równej liczbie bajtów zajmowanych przez typ wskaźnika. Operator sizeof pomaga poprawić czytelność kodu.
Techopedia wyjaśnia Sizeof Operator
Operator sizeof to jednoargumentowy operator, który przyjmuje parametr singe i jest używany ze słowem kluczowym „sizeof”. W przeciwieństwie do C ++ operator sizeof jest konstrukcją czasu kompilacji, więc parametr musi być typu zamkniętego znanego podczas kompilacji, a nie zmiennych. Parametr może być również wyliczeniem, wskaźnikiem lub strukturą zdefiniowaną przez użytkownika bez właściwości pola lub typu odniesienia. Dla niektórych predefiniowanych typów operator sizeof zwraca wartość stałą, a jego użycie z pozostałymi typami daje wartości oparte na implementacji.
Na przykład, gdy operator sizeof jest wykonywany z liczbą całkowitą (int) jako parametrem, zawsze zwraca liczbę cztery, aby wskazać, że zmienna typu liczba całkowita zajmuje cztery bajty pamięci.
Gdy operator sizeof jest stosowany do operandu typu struct, pobiera on całkowitą liczbę bajtów zajmowanych przez strukturę, która obejmuje bajty dopełniania używane do jego wyrównania wewnętrznie. Wytyczne, których należy przestrzegać podczas korzystania z operatora sizeof z struct obejmują:- Powinien zostać wywołany w niebezpiecznym bloku
- Zmienna struct nie może zawierać elementu typu odniesienia
- Struktura nie może być ogólnym typem wartości






