C# 变量详解(从入门到掌握)

在 C# 编程中,变量是最基础也是最重要的概念之一。变量本质上是程序中用于存储数据的一块内存区域的名字。通过变量,我们可以保存数据、修改数据,并在程序中进行各种运算。

本文将带你系统掌握 C# 中变量的定义、初始化、命名规则、类型分类以及相关知识点。


一、什么是变量?

在 C# 中:

变量是用于存储和表示数据的标识符。

声明变量时必须指定:

  • ✅ 数据类型
  • ✅ 变量名称
  • ✅ (可选)初始值

例如:

csharp 复制代码
int age = 18;

这里:

  • int 是数据类型
  • age 是变量名
  • 18 是初始值

二、C# 中的基本数据类型

C# 是强类型语言,每个变量必须有明确的数据类型。不同类型决定:

  • 占用的内存大小
  • 可存储的数据范围
  • 支持的操作方式

1️⃣ 整数类型

类型 说明
sbyte 有符号 8 位整数
byte 无符号 8 位整数
short 有符号 16 位整数
ushort 无符号 16 位整数
int 有符号 32 位整数(最常用)
uint 无符号 32 位整数
long 有符号 64 位整数
ulong 无符号 64 位整数
char 单个字符

示例:

csharp 复制代码
int score = 90;
char grade = 'A';

2️⃣ 浮点类型

类型 说明
float 单精度浮点数
double 双精度浮点数(默认)

示例:

csharp 复制代码
float price = 9.9f;
double height = 175.5;

注意:float 类型必须加 f 后缀。


3️⃣ 十进制类型

类型 说明
decimal 高精度十进制(常用于金融计算)
csharp 复制代码
decimal money = 199.99m;

decimal 必须加 m 后缀。


4️⃣ 布尔类型

csharp 复制代码
bool isLogin = true;

只能取:

  • true
  • false

5️⃣ 字符串类型

csharp 复制代码
string name = "Tom";

字符串属于引用类型。


6️⃣ 可空类型

C# 支持可空值类型:

csharp 复制代码
int? age = null;

表示该变量可以存储 null


7️⃣ dynamic 动态类型(C# 4.0 引入)

csharp 复制代码
dynamic value = 100;
value = "Hello";
value = true;

特点:

  • 类型在运行时确定
  • 编译器不做类型检查

⚠ 建议:

除非有特殊需求,否则优先使用强类型,提高性能与安全性。


三、变量的定义语法

基本语法

csharp 复制代码
<data_type> <variable_list>;

示例:

csharp 复制代码
int i, j, k;
char c, ch;
float salary;
double d;

四、变量的初始化

变量可以在声明时初始化:

csharp 复制代码
int a = 10;

也可以先声明再赋值:

csharp 复制代码
int a;
a = 10;

多个变量初始化:

csharp 复制代码
int d = 3, f = 5;
byte z = 22;
double pi = 3.14159;
char x = 'x';

✅ 良好习惯:声明变量时尽量初始化,避免使用未赋值变量。


五、变量命名规则

在 C# 中,变量命名必须遵循以下规则:

命名规范

  1. 只能包含:字母、数字、下划线
  2. 必须以字母或下划线开头
  3. 区分大小写
  4. 不能使用 C# 关键字

合法示例:

csharp 复制代码
int myVariable = 10;
string _userName = "John";

不合法示例:

csharp 复制代码
int 123name;      // 错误
int class = 10;   // 错误(关键字)

六、完整示例程序

csharp 复制代码
using System;

namespace VariableDefinition
{
    class Program
    {
        static void Main(string[] args)
        {
            short a;
            int b;
            double c;

            // 初始化
            a = 10;
            b = 20;
            c = a + b;

            Console.WriteLine("a = {0}, b = {1}, c = {2}", a, b, c);
            Console.ReadLine();
        }
    }
}

运行结果:

复制代码
a = 10, b = 20, c = 30

七、接收用户输入

Console.ReadLine() 用于接收用户输入(返回字符串)。

如果需要转换为整数:

csharp 复制代码
int num;
num = Convert.ToInt32(Console.ReadLine());

完整示例:

csharp 复制代码
Console.Write("请输入一个数字:");
int num = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("你输入的是:" + num);

八、Lvalue 与 Rvalue

在 C# 中有两种表达式:

🔹 Lvalue(左值)

可以出现在赋值语句左边或右边。

变量属于 Lvalue:

csharp 复制代码
int g = 20;

🔹 Rvalue(右值)

只能出现在赋值语句右边。

错误示例:

csharp 复制代码
10 = 20;   // 编译错误

原因:常量不能作为赋值目标。


九、总结

C# 变量核心知识点:

✔ 变量必须先声明类型

✔ 强类型语言,类型决定一切

✔ 建议声明时初始化

✔ 命名必须规范

✔ Console.ReadLine() 接收字符串

✔ dynamic 是运行时类型


十、学习建议

如果你是初学者,建议:

  1. 多写变量定义练习
  2. 熟悉常见数据类型
  3. 理解值类型 vs 引用类型
  4. 掌握类型转换

如果你觉得这篇文章对你有帮助,欢迎点赞 👍 收藏 ⭐ 关注 📌

后续将继续更新:

  • C# 数据类型详解
  • C# 类型转换
  • C# 运算符详解
  • C# 控制结构

一起进步 🚀

相关推荐
晨星shine3 天前
GC、Dispose、Unmanaged Resource 和 Managed Resource
后端·c#
用户298698530144 天前
.NET 文档自动化:Spire.Doc 设置奇偶页页眉/页脚的最佳实践
后端·c#·.net
用户3667462526744 天前
接口文档汇总 - 2.设备状态管理
c#
用户3667462526744 天前
接口文档汇总 - 3.PLC通信管理
c#
Ray Liang4 天前
用六边形架构与整洁架构对比是伪命题?
java·python·c#·架构设计
Scout-leaf7 天前
WPF新手村教程(三)—— 路由事件
c#·wpf
用户298698530148 天前
程序员效率工具:Spire.Doc如何助你一键搞定Word表格排版
后端·c#·.net
mudtools9 天前
搭建一套.net下能落地的飞书考勤系统
后端·c#·.net
玩泥巴的9 天前
搭建一套.net下能落地的飞书考勤系统
c#·.net·二次开发·飞书
唐宋元明清21889 天前
.NET 本地Db数据库-技术方案选型
windows·c#