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