写点什么

C#入门系列 (四) -- 常量和变量

作者:陈言必行
  • 2022 年 6 月 04 日
  • 本文字数:1225 字

    阅读完需:约 4 分钟

一,常量

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


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


  • 定义常量常量是使用 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类型为intvar 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)); }
复制代码


发布于: 刚刚阅读数: 3
用户头像

陈言必行

关注

公号:开发同学留步 2019.03.12 加入

我是一个从事Unity游戏开发攻城狮,6年开发经验,助你日常不加班。

评论

发布
暂无评论
C#入门系列(四) -- 常量和变量_C#_陈言必行_InfoQ写作社区