核心 C# - 重构篇 - 数据类型

接上回 核心 C# - 重构篇 - 变量

2.3 数据类型

2.3.1 值类型和引用类型

C# 将数据类型分为两种,一种是值类型,另一种则是引用类型。分为这两种数据类型的原因主要是为了方便管理内存和提高程序的性能。
这两种类型在内存中的存储和访问方式不同,具有不同的语义和特点。

  1. 值类型(Value Types):
    1. 值类型直接包含其数据,它们在(stack)上分配内存。这意味着当值类型的变量超出其作用域时,它们的内存将被立即释放。
    2. 值类型包括诸如整数、浮点数、字符等基本数据类型,以及结构体(struct)等用户自定义的值类型。
int x = 10; // 值类型
  1. 引用类型(Reference Types):
    1. 引用类型包含一个指向对象的引用,而对象本身则位于堆(managed heap)上。引用类型的变量在栈上仅包含一个指向堆上对象的引用,而不包含实际数据。当引用类型的变量超出其作用域时,栈上的引用会被释放,但堆上的对象只有在没有任何引用时才会被垃圾回收。
    2. 引用类型包括 string,以及类(class)等用户自定义的引用类型。
string s = "Hello World~" // 引用类型

2.3.2 预定义类型

C# 有 15 个预定义类型,其中 13 个是值类型,2 个是引用类型。

2.3.3 预定义的值类型

  1. 整型
sbyte.MinValue: -128
sbyte.MaxValue: 127
short.MinValue: -32768
short.MaxValue: 32767
int.MinValue: -2147483648
int.MaxValue: 2147483647
long.MinValue: -9223372036854775808
long.MaxValue: 9223372036854775807
byte.MinValue: 0
byte.MaxValue: 255
ushort.MinValue: 0
ushort.MaxValue: 65535
uint.MinValue: 0
uint.MaxValue: 4294967295
ulong.MinValue: 0
ulong.MaxValue: 18446744073709551615
  1. 浮点类型
float.MinValue: -3.4028235E+38
float.MaxValue: 3.4028235E+38
double.MinValue: -1.7976931348623157E+308
double.MaxValue: 1.7976931348623157E+308
decimal.MinValue: -79228162514264337593543950335 // decimal 是精度更高的浮点数,专门用于财务计算的。
decimal.MaxValue: 79228162514264337593543950335
  1. Bool 类型:true 或 false
bool trueFlag = true;
bool falseFlag = false;
  1. 字符类型:char -> 表示一个 16 位的(Unicode)字符,char 类型用单括号括起来。
char a = 'A';

2.3.4 预定义的引用类型

  1. object(后面会详细介绍)
    1. 根类型,其他类型都是派生自根类型的, 包括值类型
  2. string(后面会详细介绍)
    1. Unicode 字符串

你可能感兴趣的:(c#,重构,开发语言)