跳转到内容
主菜单
主菜单
移至侧栏
隐藏
导航
首页
最近更改
随机页面
MediaWiki帮助
代码酷
搜索
搜索
中文(中国大陆)
外观
创建账号
登录
个人工具
创建账号
登录
未登录编辑者的页面
了解详情
贡献
讨论
编辑“︁
C Sharp 数据类型
”︁
页面
讨论
大陆简体
阅读
编辑
编辑源代码
查看历史
工具
工具
移至侧栏
隐藏
操作
阅读
编辑
编辑源代码
查看历史
常规
链入页面
相关更改
特殊页面
页面信息
外观
移至侧栏
隐藏
您的更改会在有权核准的用户核准后向读者展示。
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
{{DISPLAYTITLE:C#数据类型}} '''C#数据类型'''是C#编程语言中用于定义变量、常量或方法返回值的存储格式和操作规则的基础概念。数据类型决定了变量可以存储的值范围、占用的内存大小以及可执行的操作。C#的数据类型分为两大类:'''值类型'''(Value Types)和'''引用类型'''(Reference Types)。 == 数据类型分类 == === 值类型(Value Types) === 值类型直接存储数据值,分配在栈(Stack)内存中。包括: * 基本数据类型(如整数、浮点数、字符、布尔值) * 结构体(`struct`) * 枚举(`enum`) === 引用类型(Reference Types) === 引用类型存储数据的引用(内存地址),实际数据存储在堆(Heap)内存中。包括: * 类(`class`) * 接口(`interface`) * 数组(`array`) * 委托(`delegate`) * 字符串(`string`) 以下是一个简单的分类图表: <mermaid> graph TD A[C#数据类型] --> B[值类型] A --> C[引用类型] B --> D[整数类型] B --> E[浮点类型] B --> F[字符类型] B --> G[布尔类型] B --> H[结构体] B --> I[枚举] C --> J[类] C --> K[接口] C --> L[数组] C --> M[委托] C --> N[字符串] </mermaid> == 基本值类型 == 以下是C#中常用的基本值类型及其范围和默认值: {| class="wikitable" ! 类型 !! 关键字 !! 大小(字节) !! 范围 !! 默认值 |- | 有符号8位整数 || <code>sbyte</code> || 1 || -128 到 127 || 0 |- | 无符号8位整数 || <code>byte</code> || 1 || 0 到 255 || 0 |- | 有符号16位整数 || <code>short</code> || 2 || -32,768 到 32,767 || 0 |- | 无符号16位整数 || <code>ushort</code> || 2 || 0 到 65,535 || 0 |- | 有符号32位整数 || <code>int</code> || 4 || -2,147,483,648 到 2,147,483,647 || 0 |- | 无符号32位整数 || <code>uint</code> || 4 || 0 到 4,294,967,295 || 0 |- | 有符号64位整数 || <code>long</code> || 8 || -9,223,372,036,854,775,808 到 9,223,372,036,854,775,807 || 0L |- | 无符号64位整数 || <code>ulong</code> || 8 || 0 到 18,446,744,073,709,551,615 || 0UL |- | 单精度浮点数 || <code>float</code> || 4 || ±1.5 × 10⁻⁴⁵ 到 ±3.4 × 10³⁸ || 0.0F |- | 双精度浮点数 || <code>double</code> || 8 || ±5.0 × 10⁻³²⁴ 到 ±1.7 × 10³⁰⁸ || 0.0D |- | 十进制高精度数 || <code>decimal</code> || 16 || ±1.0 × 10⁻²⁸ 到 ±7.9 × 10²⁸ || 0.0M |- | Unicode字符 || <code>char</code> || 2 || U+0000 到 U+FFFF || '\0' |- | 布尔值 || <code>bool</code> || 1 || <code>true</code> 或 <code>false</code> || <code>false</code> |} === 代码示例 === 以下示例展示如何声明和使用基本值类型: <syntaxhighlight lang="csharp"> // 整数类型 int age = 25; long population = 7_900_000_000; // 浮点类型 float temperature = 36.5f; double pi = 3.1415926535; decimal price = 19.99m; // 字符和布尔类型 char grade = 'A'; bool isActive = true; // 输出示例 Console.WriteLine($"Age: {age}, Population: {population}"); Console.WriteLine($"Temperature: {temperature}, Pi: {pi}, Price: {price}"); Console.WriteLine($"Grade: {grade}, Is Active: {isActive}"); </syntaxhighlight> '''输出:''' <pre> Age: 25, Population: 7900000000 Temperature: 36.5, Pi: 3.1415926535, Price: 19.99 Grade: A, Is Active: True </pre> == 引用类型示例 == 引用类型的变量存储的是对象的引用,而非实际数据。以下是字符串和数组的示例: <syntaxhighlight lang="csharp"> // 字符串(引用类型) string name = "Alice"; string message = "Hello, " + name; // 数组(引用类型) int[] numbers = { 1, 2, 3, 4, 5 }; // 输出 Console.WriteLine(message); Console.WriteLine($"First number: {numbers[0]}"); </syntaxhighlight> '''输出:''' <pre> Hello, Alice First number: 1 </pre> == 类型转换 == C#支持隐式转换(自动)和显式转换(强制): * '''隐式转换''':小范围类型到大范围类型(如 <code>int</code> 到 <code>long</code>)。 * '''显式转换''':大范围类型到小范围类型(需使用强制转换语法)。 <syntaxhighlight lang="csharp"> // 隐式转换 int num = 100; long bigNum = num; // 显式转换 double preciseValue = 9.87; int roundedValue = (int)preciseValue; Console.WriteLine($"Long number: {bigNum}, Rounded value: {roundedValue}"); </syntaxhighlight> '''输出:''' <pre> Long number: 100, Rounded value: 9 </pre> == 实际应用案例 == === 场景:用户输入验证 === 在表单处理中,数据类型用于验证用户输入是否符合预期格式: <syntaxhighlight lang="csharp"> Console.Write("Enter your age: "); string input = Console.ReadLine(); if (int.TryParse(input, out int userAge)) { Console.WriteLine($"Valid age: {userAge}"); } else { Console.WriteLine("Invalid input! Age must be an integer."); } </syntaxhighlight> === 场景:财务计算 === 高精度计算(如货币)需使用 <code>decimal</code> 类型以避免浮点误差: <syntaxhighlight lang="csharp"> decimal total = 0m; total += 1.99m; total += 2.49m; Console.WriteLine($"Total cost: {total:C}"); // 输出格式化为货币 </syntaxhighlight> '''输出:''' <pre> Total cost: $4.48 </pre> == 总结 == * 值类型直接存储数据,引用类型存储数据地址。 * 基本值类型包括整数、浮点数、字符和布尔值。 * 引用类型包括类、字符串、数组等。 * 类型转换需注意数据范围和精度损失。 掌握C#数据类型是编写高效、安全代码的基础。后续可进一步学习[[C#类型系统]]和[[内存管理]]等高级主题。 [[Category:编程语言]] [[Category:C Sharp]] [[Category:C Sharp 基础]]
摘要:
请注意,所有对代码酷的贡献均被视为依照知识共享署名-非商业性使用-相同方式共享发表(详情请见
代码酷:著作权
)。如果您不希望您的文字作品被随意编辑和分发传播,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)