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# 控制结构

一起进步 🚀

相关推荐
kylezhao20192 小时前
C#中如何防止序列化文件丢失和损坏
c#
玩c#的小杜同学3 小时前
工业级稳定性:如何利用生产者-消费者模型(BlockingCollection)解决串口/网口高频丢包问题?
笔记·学习·性能优化·c#·软件工程
游乐码5 小时前
c#结构体
开发语言·c#
bugcome_com7 小时前
# C# 变量作用域详解
开发语言·c#
三方测试小学徒8 小时前
GB/T 34946-2017《C#语言源代码漏洞测试规范》之整体解读
c#·cma·cnas·34946
光泽雨9 小时前
P/Invok执行时的搜索顺序
c#
用户298698530149 小时前
C# Word自动化:轻松插入特殊符号,告别手动烦恼!
后端·c#·.net
光泽雨10 小时前
C#库文件调用逻辑
开发语言·c#