rksoftware

Visual Studio とか C# とかが好きです

C# 2.0 以降の新機能の確認 - C# 9.0 - ネイティブ サイズの整数

C# 2.0 以降の新機能を一つづつ確認していきます。
以前に一度行ったのですが、公式ドキュメント再編でリンク切れしているところを見つけてしまったので。今ならもっと簡潔なサンプルが欠けるところもあるだろうし、せっかくなので今もう一度確認して行きます。

ネイティブ サイズの整数

 https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/builtin-types/nint-nuint
 nin と nuint という型が追加された。32 ビット環境では 32 ビット整数型に 64 ビット環境では 64 ビット整数型になるとのこと。

// nint のサイズを測ってみる
Console.WriteLine($"int   : Type = {typeof(int).FullName,14} : MinValue = {int.MinValue,20} : MaxValue : {int.MaxValue,20}");
Console.WriteLine($"nint  : Type = {typeof(nint).FullName,14} : MinValue = {nint.MinValue,20} : MaxValue : {nint.MaxValue,20}");
Console.WriteLine($"long  : Type = {typeof(long).FullName,14} : MinValue = {long.MinValue,20} : MaxValue : {long.MaxValue,20}");
// 64 ビット (x64) の場合
// int   : Type =   System.Int32 : MinValue =          -2147483648 : MaxValue :           2147483647
// nint  : Type =  System.IntPtr : MinValue = -9223372036854775808 : MaxValue :  9223372036854775807
// long  : Type =   System.Int64 : MinValue = -9223372036854775808 : MaxValue :  9223372036854775807
// 32 ビット (x86) の場合
// int   : Type =   System.Int32 : MinValue =          -2147483648 : MaxValue :           2147483647
// nint  : Type =  System.IntPtr : MinValue =          -2147483648 : MaxValue :           2147483647
// long  : Type =   System.Int64 : MinValue = -9223372036854775808 : MaxValue :  9223372036854775807