sizeof operator – fastställa minnesbehoven för en viss typ
Operatorn sizeof
returnerar antalet byte som används av en variabel av en viss typ. Argumentet till operatorn sizeof
måste vara namnet på en ohanterad typ eller en typparameter som är begränsad till en ohanterad typ.
Operatorn sizeof
kräver en osäker kontext. De uttryck som presenteras i följande tabell utvärderas dock i kompileringstid till motsvarande konstanta värden och kräver ingen osäker kontext:
Uttryck | Konstant värde |
---|---|
sizeof(sbyte) |
1 |
sizeof(byte) |
1 |
sizeof(short) |
2 |
sizeof(ushort) |
2 |
sizeof(int) |
4 |
sizeof(uint) |
4 |
sizeof(long) |
8 |
sizeof(ulong) |
8 |
sizeof(char) |
2 |
sizeof(float) |
4 |
sizeof(double) |
8 |
sizeof(decimal) |
16 |
sizeof(bool) |
1 |
Du behöver inte heller använda en osäker kontext när operatorns sizeof
operand är namnet på en uppräkningstyp .
I följande exempel visas hur operatorn sizeof
används:
public struct Point
{
public Point(byte tag, double x, double y) => (Tag, X, Y) = (tag, x, y);
public byte Tag { get; }
public double X { get; }
public double Y { get; }
}
public class SizeOfOperator
{
public static void Main()
{
Console.WriteLine(sizeof(byte)); // output: 1
Console.WriteLine(sizeof(double)); // output: 8
DisplaySizeOf<Point>(); // output: Size of Point is 24
DisplaySizeOf<decimal>(); // output: Size of System.Decimal is 16
unsafe
{
Console.WriteLine(sizeof(Point*)); // output: 8
}
}
static unsafe void DisplaySizeOf<T>() where T : unmanaged
{
Console.WriteLine($"Size of {typeof(T)} is {sizeof(T)}");
}
}
Operatorn sizeof
returnerar ett antal byte som skulle allokeras av den vanliga språkkörningen i hanterat minne. För structtyper innehåller det värdet alla utfyllnad, vilket visas i föregående exempel. Resultatet av operatorn sizeof
kan skilja sig från resultatet av Marshal.SizeOf metoden, som returnerar storleken på en typ i ohanterat minne.
Språkspecifikation för C#
Mer information finns i avsnittet om storleken på operatorn i C#-språkspecifikationen.
Se även
Feedback
https://aka.ms/ContentUserFeedback.
Kommer snart: Under hela 2024 kommer vi att fasa ut GitHub-problem som feedbackmekanism för innehåll och ersätta det med ett nytt feedbacksystem. Mer information finns i:Skicka och visa feedback för