Skip to content

04-常用数据类型

C# 是一种强类型语言,数据类型在代码中扮演着至关重要的角色。不同的数据类型允许程序在内存中存储不同类型的值。以下是 C# 中一些常用的基本数据类型。


1. 值类型 (Value Types)

值类型存储在堆栈(Stack)中,变量直接包含值。C# 提供了多种预定义的值类型,如整数、浮点数、布尔值等。

数据类型大小范围或表示默认值说明
int4 字节-2,147,483,648 ~ 2,147,483,647032 位整数
long8 字节-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,8070L64 位整数
short2 字节-32,768 ~ 32,767016 位整数
sbyte1 字节-128 ~ 12708 位无符号整数
uint4 字节0 ~ 4,294,967,295032 位整数
ulong8 字节0 ~18,446,744,073,709,551,615064 位整数
ushort2 字节0 ~65,535016 位整数
byte1 字节0 ~ 25508 位无符号整数
bool1 字节true​ 或 falsefalse布尔类型
char2 字节U+0000 ~ U+FFFF\0单个 Unicode 字符
float4 字节±1.5e−45 ~ ±3.4e380.0f32 位浮点数
double8 字节±5.0e−324 ~ ±1.7e3080.0d64 位浮点数
decimal16 字节±1.0 × 10−28 ~ 7.9 × 10280.0m128 位高精度浮点数,常用于财务计算

示例代码:

csharp
int age = 25;        // int 类型
long distance = 9876543210L; // long 类型
bool isAdult = true; // bool 类型
char grade = 'A';    // char 类型
float pi = 3.14f;    // float 类型
double e = 2.71828;  // double 类型
decimal salary = 5000.50m;  // decimal 类型

2. 引用类型 (Reference Types)

引用类型存储在堆(Heap)中,变量存储的是对象的引用地址,而不是直接包含对象的值。

数据类型默认值说明
stringnull字符串类型
objectnull所有类型的基类
classnull类类型,用户定义的复杂类型
arraynull数组类型

示例代码:

csharp
string name = "John";          // string 类型
object obj = 42;               // object 类型,能存储任意类型
int[] numbers = { 1, 2, 3 };   // array 类型

3. 特殊类型

数据类型默认值说明
enum第一个枚举值枚举类型,定义一组命名常量
struct各字段的默认值值类型,但可包含多个字段和方法
Nullablenull允许值类型变量为 null
dynamic编译时不确定类型,运行时确定

示例代码:

csharp
enum Days { Sunday, Monday, Tuesday };  // 枚举类型
Days today = Days.Monday;

struct Point
{
    public int X;
    public int Y;
}

Point p;
p.X = 10;
p.Y = 20;

int? nullableInt = null;  // Nullable 类型
dynamic dyn = "Hello";    // dynamic 类型
dyn = 123;                // 运行时可以变更类型

Released under the MIT License.