sizeof işleci (C# Başvurusu)

sizeofİşleci, verilen türdeki bir değişken tarafından bulunan bayt sayısını döndürür. İşlecin bağımsız değişkeni, yönetilmeyen bir sizeof türün veya yönetilmeyen tür olarak Kısıtlanmış bir tür parametresinin adı olmalıdır.

sizeofOperatör güvenli olmayan bir bağlam gerektiriyor. Ancak, aşağıdaki tabloda sunulan ifadeler derleme zamanında karşılık gelen sabit değerlere değerlendirilir ve güvenli olmayan bir bağlam gerektirmez:

Expression Sabit değer
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

Ayrıca, sizeof işlecin işleneni bir sabit listesi türünün adı olduğunda güvenli olmayan bir bağlam kullanmanıza gerek kalmaz.

Aşağıdaki örnek işlecinin kullanımını gösterir sizeof :

using System;

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)}");
    }
}

sizeofİşleci, yönetilen bellekte ortak dil çalışma zamanı tarafından ayrılacak bayt sayısını döndürür. Yapı türleri için bu değer, yukarıdaki örnekte gösterildiği gibi herhangi bir doldurma içerir. İşlecinin sonucu, sizeof Marshal.SizeOf yönetilmeyen bellekteki bir türün boyutunu döndüren yönteminin sonuçlarından farklılık gösterebilir.

C# dili belirtimi

Daha fazla bilgi için C# dil belirtiminin sizeof işleci bölümüne bakın.

Ayrıca bkz.