Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
sizeof işleci, belirli bir türdeki değişkenin kapladığı bayt sayısını döndürür. Güvenli kodda, sizeof işlecinin bağımsız değişkeni, yönetilmeyen tür adı veya kısıtlanmış yönetilmeyen bir tür olması için tür parametresi olmalıdır. Yönetilmeyen türler; tüm sayısal türleri, numaralandırma türlerini ve üyelerinin tamamı yönetilmeyen türlerden oluşan demet ve yapı türlerini içerir.
Aşağıdaki tabloda sunulan ifadeler, derleme zamanında karşılık gelen sabit değerlere göre değerlendirilir ve güvenli olmayan bir bağlam gerektirmez:
| İfade | 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 |
Güvenli olmayan kodda, sizeof’a verilen bağımsız değişken, kısıtlanmamış tür parametreleri de dahil olmak üzere, işaretçi türlerini ve yönetilen türleri içerebilir. Örnek olarak object ve stringverilebilir.
Aşağıdaki örnekte sizeof işlecinin kullanımı gösterilmektedir:
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 işleci, yönetilen bellekteki ortak dil çalışma zamanı tarafından ayrılan bayt sayısını döndürür.
yapı türleri için, yukarıdaki örnekte gösterildiği gibi bu değer herhangi bir doldurma içerir.
sizeof işlecinin sonucu, yönetilmeyen Marshal.SizeOf türün boyutunu döndüren yönteminin sonucundan farklı olabilir.
Güvenli olmayan kodda, bağımsız değişken yönetilen bir tür olduğunda, sizeof işleci bu türdeki bir örnek için ayrılan bayt sayısını değil başvurunun boyutunu döndürür.
Önemli
sizeof tarafından döndürülen değer, yönetilmeyen bellekteki türün boyutunu döndüren Marshal.SizeOf(Object)sonucundan farklı olabilir.
C# dil belirtimi
Daha fazla bilgi için, C# dil belirtimininboyut işleci bölümüne bakın.