C#入门系列 -- 常量和变量

举报
陈言必行 发表于 2022/03/05 14:53:18 2022/03/05
【摘要】 常量是固定值,程序执行期间不会改变。常量可以是任何基本数据类型,比如整数常量、浮点常量、字符常量或者字符串常量,还有枚举常量。

一,常量

常量是固定值,程序执行期间不会改变。常量可以是任何基本数据类型,比如整数常量、浮点常量、字符常量或者字符串常量,还有枚举常量。

常量可以被当作常规的变量,只是它们的值在定义后不能被修改。

  • 定义常量
    常量是使用 const 关键字来定义的 。定义一个常量的语法如下:
const 类型 常量名 = 常量值;

使用

const double d=3.14// 正确声明常量的方法
const int b;         // 错误,没有初始化

修改常量值,编译时会报错:

  • 动态常量:readonly

在运行时确定值,只能在声明时或构造函数中初始化,只能在类中定义。定义方法如下:

using System;

namespace VSProject
{
    class Program
    {
        readonly int a = 1;  // 声明时初始化
        readonly int b;    

        Program() // 构造函数中初始化
        {
            b = 2; 
        }

        void Add()
        {
            Console.WriteLine("a + b = " + (a + b));
        }
    }
}

使用建议:
在下面两种情况下:

  1. 取值永久不变(比如圆周率、一天包含的小时数、地球的半径等)。
  2. 对程序性能要求非常苛刻。

可以使用 const 常量,除此之外的其他情况都应该优先采用 readonly 常量


二,变量

一个变量只不过是一个供程序操作的存储区的名字。在 C# 中,每个变量都有一个特定的类型,类型决定了变量的内存大小和布局。范围内的值可以存储在内存中,可以对变量进行一系列操作。

C#中规定变量必须“先定义后使用”。

变量的定义语法如下所示:

变量类型 变量名;

变量类型可以是C#中支持的任何数据类型或var,变量名的命名规则遵循C#中标识符的命名规则。

  • 一些有效的变量定义如下所示:
int i, j, k;
char c, ch;
float f, salary;
double d;
  • 简单示例
using System;

namespace VSProject
{
    class Program
    {
        static void Main(string[] args)
        {
            int a = 1;
            int b = 2;

            Console.WriteLine("a + b = " + (a + b));

            Console.ReadKey();
        }
    }
}

变量值为与变量类型相同或能隐式转换为该类型的常量、已被定义并赋值的类型相同或能隐式转换为该类型的变量,或由它们作为操作数构成的表达式。

  • Var关键字
    C#3.0之后支持使用var关键字来定义隐式类型变量,声明隐式类型变量时必须对变量进行初始化。隐式类型变量的定义示例如下:
//声明隐式类型变量a,根据其初始化值1,确定a类型为int
var a = 1;
  • 可空类型
    可空类型可以表示基础类型的所有值和null,定义可空类型

变量的语法如下:

变量类型? 变量名;

变量类型可以是C#类型系统中的简单类型、枚举类型和结构类型,但不能为引用类型。

示例:

int? i;
double? d1 = 3.14;
bool? flag = null;

使用可空类型变量时,C#提供了两种方法测试变量值是否为null以避免变量的错误引用。

 int? a = 1;
 int b = 2;

 if (a == null)
 {
     Console.WriteLine("a 值为空不能进计算");
 }
 else
 {
     Console.WriteLine("a + b = " + (a + b));
 }
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。