C# 数据类型

C# 数据类型主要有三大类型:值类型、引用类型、指针类型

  1. 值类型

值类型是从 System.ValueType 派生出来的,可以直接为其分配一个具体的值。
当声明一个值类型变量时,系统会自动分配一块内存区域来存储这个变量的值。
值类型包括如下几种:

  • 整型类型:
  • [sbyte]:8位有符号整数,范围从-128~127
  • [byte]:8位无符号整数,范围从0~255
  • [short]:16位有符号整数,范围从-32768~32767
  • [ushort]:16位无符号整数,范围从0~65535
  • [int]:32位有符号整数,范围从-2147483648~2147483647
  • [uint]:32位无符号整数,范围从0~4294967295
  • [long]:64位有符号整数,范围从-9223372036854775808~9223372036854775807
  • [ulong]:64位无符号整数,范围从0~18446744073709551615
点击查看代码 sbyte sb = 10; byte b = 20; short s = 30; ushort us = 40; int i = 50; uint ui = 60u; long l = 70L; ulong ul = 80ul;

Console.WriteLine(sb);
Console.WriteLine(b);
Console.WriteLine(s);
Console.WriteLine(us);
Console.WriteLine(i);
Console.WriteLine(ui);
Console.WriteLine(l);
Console.WriteLine(ul);

  • 浮点类型:
  • [float]:32位单精度浮点数,占用4个字节,可以表示大约7位有效数字的精度。
    它适用于对内存要求严格且精度要求不是特别高得场景,如游戏中表示物体的位置
    定义方式:float myFloat = 3.14f; //需要在数字后面加上 f 或 F 后缀。

  • [double]:64位双精度浮点数,占用8个字节,可以表示大约15~16位有效数字。
    它具有更高的精度,是C#中的默认浮点类型,应用于大多数小数计算场景,如金融计算或科学研究
    定义方式:double myDouble = 3.1415926535; //不需要添加后缀。

  • [decimal]:128位精确的十进制数,占用16个字节,可以表示高达28~29位有效数字。
    专门为高精度需求设计, 它适用于财务和货币计算,确保每一个小数的精度
    定义方式:decimal myDecimal = 1.0m; //需要在数字后面添加 m 或 M 后缀。

  • 布尔类型:
  • [bool]:它表示布尔值,只有两种可能的值:True 和 False。
    用于表示条件判断的结果,如if语句、循环控制语句、比较语句中
    定义方式:bool isTrue = True; bool isFalse = false;

bool类型值得默认值和初始化:
在C#中,布尔类型得默认值为false。如:
bool b; //默认值为 false
bool?b; //默认值为 null

  • 字符类型:
  • [chart]:16位用于表示单个字符,占用2个字节,用于存储Unicode字符
    用于处理文本时区分不同的字符
    定义方式:char c = "A";
  1. 引用类型

应用类型(Reference types)不直接存储数据值,而是存储对数据的引用
引用类型包括如下几种:

  • 对象类型:Object,是所有数据类型的基类。

  • 动态类型:Dynamic,在运行时进行类型检查。

  • 字符串类型:String,用于存储文本数据,字符串一旦初始化就不可变的,可以通过StringBuilder类进行修改。每次修改都会创建一个新的字符串对象。可以通过双引号 “” 或逐字字符串标记 @“” 类创建。

  • 类(Class):用户自定义的引用类型,类是面向对象编程的基本单位,包含数据成员和函数成员。

  • 接口(Interface):定义了一组方法和属性的规范,用于定义类的行为。它不能直接实例化,必须通过类来实现。

  • 委托(Delegate):可以持有对方法的引用,用于定义回调方法。委托是一种类型,它定义了方法的签名,并可以持有对方法的引用。

  • 数组(Array):数组元素可以是值类型,但是数组本身是引用类型。数组的元素是存储在托管堆上,数组变量存储的是数组元素的内存地址。

引用类型的特性:

  • 存储位置:数据存储在托管堆上,变量存储的是数据的内存地址;
  • 内存分配:在堆上动态分配内存,大小不固定,可以在运行时确定;
  • 默认值:引用类型默认值是null,表示没有引用任何对象;
  • 内存回收:由垃圾回收器管理,当没有变量引用该对象时,垃圾回收器可能会回收其内存;
  • 赋值:赋值会复制对象的引用,而不是对象本身。两个变量可能引用同一个对象;
  • 方法和属性:可以拥有方法和属性,因为它们通常代表更复杂的数据结构;
  1. 指针类型

指针类型(Pointer types)用于存储内存地址,允许直接访问内存。
在C#中,指针的使用相对受限,主要用于底层编程与硬件交互的场景。

posted @   一缕冬日的暖阳  阅读(28)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示