C#  变量与常量
无论编写任何应用程序,数据都必须以某种方式表示。变量和常量在编写应用程序时经常用到,它的使用使代码更加可读性和更容易维护。
1.变量
程序要对数据进行读、写、运算等操作,当需要保存特定的值或计算结果时,就需要用到变量(variable)。在计算机中变量代表存储地址,而变量的类型决定了存储在变量中的数值的类型。变量可以在定义时被赋值,也可以在定义时不赋值。
在C#中,允许用户使用除系统保留字、特殊符号以外所有的字符命名变量,包括字母、数字、下划线和中文等,但不允许以数字作为变量名称的第一个字符。例如,下面的关键字均可以作为变量的名称使用。
aData , b24 , f1 , 汉字 , 中2 , _a , _1
C#是一种区分大小写的编程语言。在C#中,变量a和变量A是两个不同的变量。
为了增强程序的可读性,在命名变量时应尽量使其名称语义化和规范化。尤其在编写同一程序时,应使用同一规范的命名法则,例如匈牙利命名法、驼峰命名法和帕斯卡命名法等。
声明变量的过程,就是在内存中划分单元的过程。在C#中声明一个变量后,可以在程序执行时在内存中标记出一个空的内存单元。如在声明变量的过程中还为变量赋值,则在标记空内存单元后会在该单元中填入数据。
C#声明变量的语法与C、C++和Java十分类似,都需要使用变量的数据类型作为关键字,先定义数据类型,然后再书写变量的名称,其方法如下。
Type VariableName ;
例如,声明一个整数型变量,代码如下所示。
int intNB;
在声明变量的同时,如果还需要赋值,则可以使用等号运算符“=”对其添加数据值,代码如下。
Type VariableName = Value ;
为变量赋值的过程又被称作变量的初始化或实例化,即为变量添加一个初始的值,或将变量定义为一个实际存在的例子。例如,初始化一个逻辑型变量,代码如下所示。
bool boolData = false ;
在声明变量时,可以使用一个变量类型的关键字同时声明多个同类变量,并为其中若干变量赋值。此时,每个变量或变量赋值的表达式之间应以逗号“,”隔开。例如,依次声明a、b、c等三个字符型变量,并为b和c赋值,代码如下。
char a , b = 'b' , c = 'c' ;
2.常量
带有const修饰符声明的变量称为常量,常量的值在程序执行过程中会改变,而常量代表的是永远不会改变的数据,方法如下:
const Type ConstantName;
例如,声明一个单精度浮点类型常量pi,代码如下所示。
const float pi;
在声明常量时,用户同样可以使用等号运算符“=”为其初始化,方法与初始化变量类似,如下所示。
const Type ConstantName = ConstantValue;
例如,在声明常量pi之后为其初始化,代码如下所示。
const float pi = 3.14159265358f;
3.作用域和修饰符
C#允许变量在任何代码块中声明。代码块定义了一个作用域。每次创建新的代码块时,都意味着创建了一个作用域。作用域决定了程序的其他部分中哪些对象是可见的,还决定了这些对象的生命期。
在C#中,所有大括号“{}”括起来的内容都被视为代码块,例如命名空间和之后将要介绍的类、对象、方法、条件分支语句、迭代语句等。在这些代码块中,大括号“{}”可以将其内部和外部的代码隔离,保持内部代码的独立性和安全性。这种代码块就是变量的作用域。在默认状态下,在大括号“{}”内部声明的变量等编程元素仅能在该代码块内部使用,而无法被外部的代码访问。
作用域是可以被修改的。在声明变量、自定义类、属性、方法时,用户可以使用修饰符对这些编程元素的作用域进行编辑,之前介绍的const关键字也是一种修饰符,其定义了变量是只读的。常用的修饰符主要包括以下几种,如表2-5所示。
表2-5  用于定义作用域的修饰符
修饰符
作用
public
定义该编程元素的作用域为全局,即在任意位置均可使用。
private
定义该编程元素为私有类型,仅在其所属的类中可用。
internal
定义该编程元素为私有类型,仅在其所属的程序集中可用。
protected
定义该编程元素为受保护的,仅在其所属的类和该类派生的类中可用。
protected internal
派生作用域,定义该编程元素仅在其所属的程序集和派生类中可用。
以上5种修饰符可以定义所有编程元素的作用域状态,对其作用域进行限制。在使用修饰符时,需要注意以下事项。
串变量和串常量的区别
修饰符唯一性  每一个编程元素只能使用一种修饰符,即表2-5中任意的一种。除protected internal之外,其他任何修饰符都不能嵌套使用。
命名空间无限作用域  命名空间也是一种编程元素,但其没有被访问的限制,也就是默认全局访问,不允许限制作用域。
顶级类作用域限制  在一些并未嵌套入其他类的类(这种类被称作顶级类)中,其修饰符只能是public或internal,且默认为internal。
成员作用域限制  某个结构的成员作用域不能超出其本身的作用域限制。例如,一个类的作用域为private,则该类的成员作用域也只能是private。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。