C#第五课:常量与变量

前言

        在编程中,数据的存储和处理是必不可少的,C#语言中,通常通过常量和变量来管理这些数据,在本课中,将对常量和变量进行介绍。

一、变量

       一个变量可以理解为提供程序操作的存储区的名字。

        在C#中,变量用于存储和表示数据的标识符,在声明变量时,需要指定数据类型并可以选择性的赋予其一个初始值,并且这个数据类型决定了变量的内存大小和布局。

        C#中提供的基本类型分为以下几类:

类型举例
整数类型sbyte,byte,short,ushort,int,uint,long,ulong和char
浮点型float、double
十进制类型decimal
布尔类型true或false
空字符串string
空类型可为空值的类型,例如string?

解释:char类型为什么属于整数类型呢?因为char类型用于表示单个16位的Unicode字符,底层存储的是一个ushort类型。当定义一个字符类型时,将其转换为整数类型就可以看到其对应的Ascii值。具体可以看Ascii码表。

char letter = 'A'
int asciiValue = letter; //转换为整数,结果是65

int num = 65;
char letter = (char)num;  //结果是'A'

1.变量的定义

        C#中变量定义的语法:

<data_type> <variable_list>;

在这里data_type必须是一个有效的C#数据类型,可以是char、int、float、double即上面结局到的数据类型。variable_list可以是一个或多个用逗号分隔的标识符名称。

int i, j, k;
char c, ch;
float f, salary;
double d;

2.变量的使用

        定义变量后,可以通过变量名来访问和修改其值,

int age = 25;
//修改值

age = 30;
//访问
Console.WriteLine(age);

3.变量命名规则

        变量可以包含字母、数字和下划线。

        变量必须以字母或下划线开头。

        变量名区分大小写。

        避免使用C#关键字作为变量名。

        命名规范:(X是大写,x是小写)

        (1)XxxXxx   类名 命名空间  方法名

        (2)IXxxXxx  接口名

        (3)TXxxXxx 泛型类型名

        (4)XxxXxxAttribute 特性

        (5)XxxXxxProperty 依赖属性

        (6)xxXxx  局部变量 私有字段,入参

        (7)_xxXxx  使用依赖注入时更推荐

        (8)s_xxXxx   m_xxXxx 一般不使用   s_静态的  m_成员 t_临时的

        (9)@关键字   @bool   @object 使用关键字作为名称

        (10)bool类型   IsXxx/HasXx

二、变量作用域

         在C#中,变量的作用域决定了变量的可见性和生命周期。通常变量的作用域由花括号{}定义的代码块来确定。即定义变量时,该变量所属的一级花括号中均可使用该变量。

        2.1 局部变量

                在方法、循环、条件语句等代码块内声明的变量是局部变量,它们只在声明它们的代码块中可见。

//方法中
void Method()
{
    int localVar = 10; //该变量只能在这个方法中使用,在{}外是可不使用的。
}


void Method1()
{
//循环
    while(true)
    {
        int localVar = 20;//该变量只能在while的花括号中生效
    }
//条件
        if(true)
     {
        int localVar = 50;//该变量只能在if的花括号中生效
    }

}


2.2全局变量

        在类的成员级别定义的变量是成员变量,它们在整个类中可见。

class Myclass
{
    int num =32 ;//该变量在该类中均可使用
}

  2.3示例

 public class Example   
{
    string Name; //在整个类中生效
    int Age;//在整个类中生效
    
    public void Mehtod(string description)
    {
        Name = "Jack";
        Age = 18;
        description = "是个男孩"; //只在该方法中生效
        string sex = "男";//只在该方法中生效
    }
    public void Num()
    {
        for(int i = 0 ;i<50;i++)
        {
            Console.WriteLine(i);//i只在for循环汇总可用
        }
    }
    
}

三、常量

        常量是固定值,程序执行期间不会改变,常量可以是任何基本数据类型。

        3.1定义常量

        在C#中,常量使用“const”关键字定义

const <data_type> <variable> = 初始值; 

        例如,定义一个圆周率常量‘PI’,

const double PI =  3.1415926; 

        在这个例子中:

                double是常量的类型,表示存储的是双精度浮点型;

                PI是常量的名称;

                3.1415926是固定值,不能修改;

3.2常量的使用

        常量在定义后不能被重新赋值。

double radius = 5.0;
double circumference = 2 * PI * radius;

Console.WriteLine("半径为 " + radius + " 的圆的周长是:" + circumference);

        

        常量在修改值时会提示必须是变量、属性或索引器。

3.3 const关键字

  • 编译时常量const 修饰的常量在编译时就确定了值。由于它们是编译时常量,C# 编译器会将这些值直接内联到使用它们的地方,这使得 const 常量的访问速度非常快。

  • 不可修改const 常量一旦定义,其值在程序的整个生命周期内都不能被修改。

  • 必须初始化:在声明 const 常量时,必须同时进行初始化。未初始化的 const 常量会导致编译错误。

  • 只能用于基本数据类型const 关键字只能用于修饰基本数据类型(如 intdoublecharstring 等)以及枚举类型。

  • 类级别常量const 常量通常用于类的成员,表示该常量是类级别的,而不是实例级别的。即使没有实例化类,也可以通过类名直接访问 const 常量。

注意:

        不可更改性:因为 const 常量在编译时就已经被固定,因此不能在运行时更改其值。这种不变性使得 const 常量非常适合用于定义全局不变的值,如数学常量、物理常量或配置中的固定值。

        静态特性:const 常量隐式地具有 static 特性,因此不能用实例名来访问它们,而是通过类名来访问。

        编译时决定的值:由于 const 常量在编译时就已经确定,所以它们的值不能依赖于运行时的数据或状态。也就是说,不能使用方法调用或非 const 常量来为 const 赋值。

总结

        常量在编写程序中提供了数据的不变性,确保了代码的安全性和可读性;变量则提供了灵活性,使程序能够动态响应不同的输入和条件。

  • 18
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值