ulong关键字表示一个长整型数据,它的范围是0到18,446,744,073,709,551,615之间的无符号整数值整数值。long关键字是System.UInt64的别名。

观察下面的例子

namespace HelloWorld
 
 {
 
     internal class Program
 
     {
 
         static void Main(string[] args)
 
         {
 
             
 
             ulong number = 18446744073709551615L; //声明number变量并且初始化值=开辟了内存
 
  
 
             Console.WriteLine($"number = {number}");
 
             Console.WriteLine(number.GetType());
 
             Console.WriteLine($"ulong占内存大小:{sizeof(ulong)}字节");
 
             Console.WriteLine($"ulong最小值:{ulong.MinValue}");
 
             Console.WriteLine($"ulong最大值:{ulong.MaxValue}");
 
  
 
             number = number + 1; // 
 
  
 
             Console.WriteLine($"number = {number}");
 
  
 
  
 
             Console.ReadKey();
 
  
 
         }
 
     }
 
 }

输出结果

number = 18446744073709551615
System.UInt64
ulong占内存大小:8字节
ulong最小值:0
ulong最大值:18446744073709551615
number = 0

我们给number赋值为ulong的最大值,最后在它基础上又加1,此时发生溢出,number所指向的内存空间实际存储的数据为0。

在C#中,除了decimal能表示128位的数据,其它的数值型数据都未能超过64位。

——重庆教主 2024年1月10日