跳转到内容

C Sharp 变量

来自代码酷
Admin留言 | 贡献2025年4月29日 (二) 18:40的版本 (Page creation by admin bot)

(差异) ←上一版本 | 已核准修订 (差异) | 最后版本 (差异) | 下一版本→ (差异)

C#变量是存储数据的基本单元,用于在程序中保存和操作信息。作为C#编程语言的核心概念之一,理解变量是掌握编程基础的关键步骤。本文将详细介绍变量的定义、类型、声明、作用域及实际应用。

变量概述[编辑 | 编辑源代码]

变量是内存中的命名存储位置,其值可以在程序运行时改变。每个变量具有:

  • 标识符(名称)
  • 数据类型(决定存储内容和操作方式)
  • (存储的具体数据)
  • 作用域(可访问的范围)

在C#中,变量必须先声明后使用,遵循强类型规则。

变量声明与初始化[编辑 | 编辑源代码]

基本语法[编辑 | 编辑源代码]

C#变量声明格式:

数据类型 变量名 [= 初始值];

示例:

int age;          // 声明未初始化
double pi = 3.14; // 声明并初始化
string name = "Alice";

多重声明[编辑 | 编辑源代码]

同类型变量可合并声明:

int x = 5, y = 10, z = 15;

变量类型[编辑 | 编辑源代码]

C#变量主要分为两大类:

值类型[编辑 | 编辑源代码]

直接存储数据本身,包括:

  • 基本类型:int, double, bool, char
  • 结构体:struct
  • 枚举:enum

引用类型[编辑 | 编辑源代码]

存储数据的内存地址,包括:

  • 类:class
  • 接口:interface
  • 数组
  • 委托

graph LR A[变量类型] --> B[值类型] A --> C[引用类型] B --> D[基本数据类型] B --> E[结构体] B --> F[枚举] C --> G[类] C --> H[接口] C --> I[数组] C --> J[委托]

数据类型详解[编辑 | 编辑源代码]

常用基本类型[编辑 | 编辑源代码]

基本数据类型表
类型 描述 示例 默认值 大小 int 32位整数 42 0 4字节 double 双精度浮点 3.14159 0.0 8字节 bool 布尔值 true false 1字节 char Unicode字符 'A' '\0' 2字节 string 文本字符串 "Hello" null 可变

类型推断(var)[编辑 | 编辑源代码]

C#支持编译时类型推断:

var message = "Hello World";  // 编译器推断为string
var number = 42;              // 推断为int

变量作用域[编辑 | 编辑源代码]

变量可访问的范围由其声明位置决定:

  • 局部变量:在方法或代码块内声明
  • 类字段:在类中声明
  • 参数:方法或构造函数的参数

示例:

class Example {
    int classField = 10;  // 类作用域

    void Method(int parameter) {  // 参数作用域
        int localVar = 20;        // 局部作用域
        
        if (true) {
            int blockVar = 30;    // 块作用域
            Console.WriteLine(blockVar);
        }
    }
}

常量(const)[编辑 | 编辑源代码]

不可变的变量使用const关键字:

const double Gravity = 9.81;
const string AppName = "MyApp";

实际应用案例[编辑 | 编辑源代码]

场景1:用户输入处理[编辑 | 编辑源代码]

Console.Write("Enter your name: ");
string userName = Console.ReadLine();
Console.Write("Enter your age: ");
int userAge = Convert.ToInt32(Console.ReadLine());

Console.WriteLine($"Hello {userName}, you are {userAge} years old.");

输出示例:

Enter your name: Alice
Enter your age: 25
Hello Alice, you are 25 years old.

场景2:数学计算[编辑 | 编辑源代码]

double radius = 5.0;
const double PI = 3.14159;
double area = PI * radius * radius;
Console.WriteLine($"Area of circle: {area}");

输出:

Area of circle: 78.53975

最佳实践[编辑 | 编辑源代码]

1. 使用有意义的变量名(如customerCount而非cc) 2. 遵循命名约定(局部变量使用camelCase,常量使用UPPER_CASE) 3. 尽量缩小变量作用域 4. 必要时添加注释说明变量用途

常见问题[编辑 | 编辑源代码]

值类型 vs 引用类型[编辑 | 编辑源代码]

  • 值类型赋值是复制整个值
  • 引用类型赋值是复制引用(内存地址)

示例:

int a = 10;
int b = a;  // 值复制
b = 20;     // 不影响a

int[] arr1 = { 1, 2, 3 };
int[] arr2 = arr1;  // 引用复制
arr2[0] = 100;      // 影响arr1

默认值[编辑 | 编辑源代码]

未初始化的变量会自动赋默认值:

  • 数值类型:0
  • bool:false
  • 引用类型:null
  • char:'\0'

高级主题[编辑 | 编辑源代码]

可空值类型[编辑 | 编辑源代码]

值类型可通过?修饰符变为可空:

int? nullableInt = null;
if (nullableInt.HasValue)
{
    Console.WriteLine(nullableInt.Value);
}

类型转换[编辑 | 编辑源代码]

  • 隐式转换(自动):int i = 10; double d = i;
  • 显式转换(强制):double d = 10.5; int i = (int)d;

数学公式示例(圆的面积): A=πr2

总结[编辑 | 编辑源代码]

C#变量是程序存储和操作数据的基础。通过合理选择数据类型、规范命名和正确管理作用域,可以编写出高效可靠的代码。掌握变量概念为进一步学习C#编程奠定了坚实基础。