C# 数据类型主要有三大类型:值类型、引用类型、指针类型
- 值类型
值类型是从 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";
- 引用类型
应用类型(Reference types)不直接存储数据值,而是存储对数据的引用
引用类型包括如下几种:
-
对象类型:Object,是所有数据类型的基类。
-
动态类型:Dynamic,在运行时进行类型检查。
-
字符串类型:String,用于存储文本数据,字符串一旦初始化就不可变的,可以通过StringBuilder类进行修改。每次修改都会创建一个新的字符串对象。可以通过双引号 “” 或逐字字符串标记 @“” 类创建。
-
类(Class):用户自定义的引用类型,类是面向对象编程的基本单位,包含数据成员和函数成员。
-
接口(Interface):定义了一组方法和属性的规范,用于定义类的行为。它不能直接实例化,必须通过类来实现。
-
委托(Delegate):可以持有对方法的引用,用于定义回调方法。委托是一种类型,它定义了方法的签名,并可以持有对方法的引用。
-
数组(Array):数组元素可以是值类型,但是数组本身是引用类型。数组的元素是存储在托管堆上,数组变量存储的是数组元素的内存地址。
引用类型的特性:
- 存储位置:数据存储在托管堆上,变量存储的是数据的内存地址;
- 内存分配:在堆上动态分配内存,大小不固定,可以在运行时确定;
- 默认值:引用类型默认值是null,表示没有引用任何对象;
- 内存回收:由垃圾回收器管理,当没有变量引用该对象时,垃圾回收器可能会回收其内存;
- 赋值:赋值会复制对象的引用,而不是对象本身。两个变量可能引用同一个对象;
- 方法和属性:可以拥有方法和属性,因为它们通常代表更复杂的数据结构;
- 指针类型
标签:存储,Console,C#,数据类型,引用,WriteLine,类型,默认值 From: https://www.cnblogs.com/tdreamtec/p/18666803指针类型(Pointer types)用于存储内存地址,允许直接访问内存。
在C#中,指针的使用相对受限,主要用于底层编程与硬件交互的场景。