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

一起进步 🚀

相关推荐
nnsix19 小时前
C# ProcessStartInfo对象笔记
开发语言·笔记·c#
格林威19 小时前
工业相机“心跳”监测脚本(C# 版) 支持海康 / Basler / 堡盟工业相机
开发语言·人工智能·数码相机·opencv·计算机视觉·c#·视觉检测
刚子编程21 小时前
C#事务处理最佳实践:别再让“主表存了、明细丢了”的破事发生
开发语言·c#·事务处理·trycatch
斯卡文计算机术士21 小时前
C#测试(二)
c#
manyikaimen21 小时前
博派智能-运动控制技术-C#环境的搭建
c#·环境搭建·运动控制器·运动控制卡·动态库调用
xiaoshuaishuai81 天前
C# GPU算力与管理
开发语言·windows·c#
hez20101 天前
C# 15 类型系统改进:Union Types
c#·.net·.net core
FL16238631291 天前
基于C#winform部署软前景分割DAViD算法的onnx模型实现前景分割
开发语言·算法·c#
C#程序员一枚1 天前
高可用(High Availability, HA)
数据库·c#
weixin_520649872 天前
C#进阶-特性全知识点总结
开发语言·c#