目 录CONTENT

文章目录

CSharp(四) 变量和常量

CSharp(四) 变量和常量

变量和常量的定义和区别

变量

变量是一种存储数据的容器,里面的值可以改变,但是类型不能改变

变量和常量是两种不同的数据类型,变量可以改变,常量不能改变

变量的定义

在CSharp中规定 变量必须是先定义,再使用

  • 语法如下
变量类型 变量名;
  • 举例
int a;
  • 多个变量,类型一样
变量类型 变量名1, 变量名2, 变量名3;
  • 举例
int a, b, c;

变量命名规则

  • 变量名必须以字母或下划线开头
  • 变量名只能包含字母、数字和下划线
  • 变量名不能是空格
  • 变量名不能是保留字
  • 变量名不能是CSharp关键字

使用变量

  • 变量的声明与赋值
// 声明变量
int age;           // 声明一个整数变量
string name;       // 声明一个字符串变量

// 赋值
age = 25;
name = "张三";

// 声明时直接初始化
int score = 100;
double pi = 3.14159;
bool isActive = true;
  • 隐式类型声明(var)
var count = 10;        // 编译器推断为 int
var message = "Hello"; // 编译器推断为 string
var price = 19.99;     // 编译器推断为 double
// var 必须在声明时初始化,编译器才能推断类型

变量的作用域

  • 就近原则,括号里面的定义的变量 传递不到括号外面的变量

class Program
{
    // 字段(类级别变量)
    private int classLevelVariable = 0;

    void Method()
    {
        // 局部变量
        int localVariable = 10;

        if (true)
        {
            // 块级变量
            int blockVariable = 20;
            // blockVariable 只能在这个代码块内使用
        }
        // 这里无法访问 blockVariable
    }
}

常量

常量是一种存储数据的容器,里面的值不能改变,并且类型不能改变

const 常量

在CSharp中我们通常使用 const来定义常量

定义语法

  • 语法如下

const 常量类型 常量名 = 值;

  • 示例代码

// const 必须在声明时初始化,且值在编译时确定
const int MaxValue = 100;
const string AppName = "MyApplication";
const double PI = 3.1415926;

// 错误示例:const 不能延后赋值
// const int MinValue;
// MinValue = 0;  // 编译错误!

readonly 常量

readonly 常量是一种在类中定义的常量,它的值只能在构造函数中初始化,并且在类的生命周期中不能改变

  • 定义语法

readonly 常量类型 常量名 = 值;

  • 示例代码

class Circle
{
    // readonly 可以在声明时或构造函数中初始化
    public readonly double Radius;

    public Circle(double radius)
    {
        Radius = radius;  // 在构造函数中赋值
    }
}

// readonly 与 const 的区别:
// - const: 编译时常量,隐式 static
// - readonly: 运行时常量,每个实例可以有不同的值

变量与readonly与const的区别

特性 变量 const readonly
值可否改变 可以 不可以 不可以
初始化时机 任何时候 声明时必须 声明时或构造函数中
类型推断 支持var 必须显式声明 必须显式声明
内存分配 运行时 编译时嵌入 实例字段
可否为 static 可以 隐式 static 可以

练习题

class Program
{
    // 常量
    const double TaxRate = 0.13;

    // 只读字段
    readonly string _productName;

    public Program(string productName)
    {
        _productName = productName;
    }

    static void Main()
    {
        // 变量
        decimal price = 199.99m;
        int quantity = 3;

        // 使用常量计算
        decimal total = price * quantity;
        decimal tax = total * (decimal)TaxRate;
        decimal finalAmount = total + tax;

        Console.WriteLine($"商品: {new Program("笔记本电脑")._productName}");
        Console.WriteLine($"总价: {total:C}");
        Console.WriteLine($"税额: {tax:C}");
        Console.WriteLine($"实付: {finalAmount:C}");
    }
}
0
博主关闭了当前页面的评论