C#基础语法全解析:变量、数据类型与运算符

在C#编程中,变量、数据类型和运算符是核心基础元素。它们共同构成了程序的数据处理和逻辑控制框架。我将逐步解析这些概念,确保内容清晰、实用。以下内容基于C#标准语法,适用于大多数开发环境(如.NET Core或Unity)。代码示例使用C#编写,并遵循最佳实践。

1. 变量

变量是程序中存储数据的命名容器。声明变量时,需指定数据类型和变量名,并可初始化值。C#是强类型语言,变量类型必须明确。

  • 声明语法数据类型 变量名 = 值;
  • 命名规则
    • 变量名以字母或下划线开头,后可接字母、数字或下划线。
    • 区分大小写(如ageAge不同)。
    • 避免使用C#关键字(如intclass)。
  • 作用域:变量在声明块(如方法或类)内有效。
  • 示例代码
using System;

class Program
{
    static void Main()
    {
        // 声明并初始化变量
        int age = 25; // 整数变量
        string name = "Alice"; // 字符串变量
        bool isStudent = true; // 布尔变量

        // 输出变量值
        Console.WriteLine($"姓名: {name}, 年龄: {age}, 学生: {isStudent}");
        // 重新赋值
        age = 26;
        Console.WriteLine($"更新后年龄: {age}");
    }
}

  • 关键点
    • 使用var关键字可隐式声明变量(编译器推断类型),如var count = 10;(count为int类型)。
    • 未初始化的变量可能导致编译错误(值类型默认初始化为0,引用类型为null)。
2. 数据类型

数据类型定义了变量存储的数据种类和大小。C#分为值类型(直接存储数据)和引用类型(存储引用地址),这里聚焦基本类型。

  • 值类型
    • 整数类型:存储整数值,大小和范围不同。
      • int:32位整数,范围 $-2^{31}$ 到 $2^{31}-1$(约 $-2.147e9$ 到 $2.147e9$)。
      • long:64位整数,范围 $-2^{63}$ 到 $2^{63}-1$(约 $-9.223e18$ 到 $9.223e18$)。
      • 其他:byte(8位无符号)、short(16位)。
    • 浮点类型:存储小数,适用于数学计算。
      • float:32位单精度浮点数,范围约 $\pm 1.5 \times 10^{-45}$ 到 $\pm 3.4 \times 10^{38}$,精度6-9位小数。
      • double:64位双精度浮点数,范围约 $\pm 5.0 \times 10^{-324}$ 到 $\pm 1.7 \times 10^{308}$,精度15-17位小数。常用作默认浮点类型。
    • 其他值类型
      • char:16位Unicode字符,如 'A'
      • bool:布尔值,truefalse
  • 引用类型
    • string:字符串序列,不可变(如 "Hello")。
    • 数组、类等(本解析聚焦基础)。
  • 类型转换
    • 隐式转换:小类型到大类型(如intlong),自动完成。
    • 显式转换:大类型到小类型(如doubleint),需强制转换,可能丢失数据。
  • 示例代码
using System;

class Program
{
    static void Main()
    {
        // 值类型示例
        int quantity = 100;
        double price = 99.95; // 双精度浮点数
        char grade = 'A';
        bool isValid = false;

        // 引用类型示例
        string message = "欢迎学习C#!";

        // 类型转换
        int total = (int)(quantity * price); // 显式转换double到int
        float ratio = quantity; // 隐式转换int到float

        // 输出
        Console.WriteLine($"总价: {total}, 比例: {ratio}, 消息: {message}");
    }
}

  • 关键点
    • 使用sizeof()方法获取类型大小(如sizeof(int)返回4字节)。
    • 浮点数计算时注意精度问题(如 0.1 + 0.2 != 0.3 可能为真)。
3. 运算符

运算符用于对变量或值执行操作,如算术、比较或逻辑运算。C#支持多种运算符,优先级从高到低执行(可用括号()改变顺序)。

  • 算术运算符:执行数学计算。
    • 加法 +:如 a + b,结果 $a + b$。
    • 减法 -:如 a - b,结果 $a - b$。
    • 乘法 *:如 a * b,结果 $a \times b$。
    • 除法 /:如 a / b,结果 $a \div b$(整数除法截断小数)。
    • 取模 %:求余数,如 7 % 3 = 1(因为 $7 \div 3 = 2 \text{余} 1$)。
    • 自增 ++ 和自减 --:如 x++ 等价于 x = x + 1
  • 关系运算符:比较值,返回布尔结果。
    • 等于 ==:如 a == b
    • 不等于 !=:如 `a != b$。
    • 大于 >、小于 <、大于等于 >=、小于等于 <=
  • 逻辑运算符:用于布尔表达式。
    • 逻辑与 &&:如 (a > 0) && (b < 10),当两者为真时返回真。
    • 逻辑或 ||:如 (a == 0) || (b == 0),任一为真时返回真。
    • 逻辑非 !:如 !isValid,取反。
  • 赋值运算符:赋新值。
    • 基本赋值 =:如 x = 5
    • 复合赋值如 +=x += 3 等价于 x = x + 3
  • 其他运算符:条件运算符 ?:(三元操作),如 result = (a > b) ? a : b
  • 示例代码
using System;

class Program
{
    static void Main()
    {
        int a = 10, b = 5;
        bool check = true;

        // 算术运算
        int sum = a + b; // 15
        int product = a * b; // 50
        double quotient = (double)a / b; // 2.0(显式转换避免整数除法)

        // 关系运算
        bool isEqual = (a == b); // false
        bool isGreater = (a > b); // true

        // 逻辑运算
        bool andResult = (a > 0) && (b < 10); // true
        bool orResult = (a == 0) || !check; // false(因为!true=false)

        // 输出
        Console.WriteLine($"和: {sum}, 积: {product}, 商: {quotient}");
        Console.WriteLine($"相等: {isEqual}, 大于: {isGreater}, 与运算: {andResult}, 或运算: {orResult}");
    }
}

  • 关键点
    • 运算符优先级:算术 > 关系 > 逻辑 > 赋值(例如 a + b * c 先计算 b * c)。
    • 使用括号提高可读性,如 (a + b) * c
    • 避免除以零错误(如 int x = 10 / 0; 会抛出异常)。
总结

变量、数据类型和运算符是C#编程的基石:

  • 变量:存储和操作数据的基础单元。
  • 数据类型:确保数据正确存储和处理,选择合适类型优化性能。
  • 运算符:实现数据计算和逻辑控制。 通过结合这些元素,您可以构建高效、可靠的C#程序。建议多实践代码示例(如使用Visual Studio或.NET CLI编译),以加深理解。遇到问题时,查阅官方文档(如Microsoft Learn)获取更多细节。
Logo

Agent 垂直技术社区,欢迎活跃、内容共建。