常量
常量:不可更改其值的变量
1 与声明变量格式相似,不同的是1)类型前面必须使用关键字 const 修饰符 2)必须为其赋相应类型的初始值 3)可以声明之前说过的基本数据类型中的所有C#内置类型(暂时)
声明常量的语法格式
const 基本数据类型 常量名=常量值
const double PI=3.14;
//也可以像变量一样声明多个相同类型的变量
//中间使用逗号分隔
const double PI1=3.14,PI2=3.1415926;
2 声明赋值后,编程时不可为其重新赋值
使用常量的益处:防止程序中其他地方修改其值;如团队开发工程类软件,常用的PI值,一旦确定使用PI的几位精度之后,团队中其他人就不能再重新为PI赋其他精度的值
示例:计算圆面积的小程序
//计算圆的面积
const double PI = 3.14;
double r, area = 0;//半径 面积
while (true)
{
//Console.Clear();//清除屏幕内容
Console.WriteLine("请输入圆的半径");
r = Convert.ToInt64(Console.ReadLine());
area = PI * r * r;
Console.WriteLine("半径为: {0} 圆面积为: {1}", r, area);
Console.WriteLine("");
Console.WriteLine("按任意键继续其他半径圆面积的计算");
Console.WriteLine("");
Console.ReadKey();
}
枚举
枚举:直接在命名空间、类或结构中;使用 enum 关键字进行定义,枚举的每个成员变量就是一个常量(这里无需强制赋值),都书写在大括号内并用逗号进行分隔
枚举的语法格式(黄色表示可以省略,使用其默认值)
enum 自定义的枚举名称 :指定的类型
{
成员变量1=枚举值,
成员变量2=枚举值,
...
}
枚举是基于整形的自定义类型
基于整形:不仅是因为枚举成员变量的值只能是整形(下面图中有是哪些整形),而且成员变量的底层都是以一个整形存储
自定义类型:是因为可以自己定义枚举的名称,不像系统的如int,bool等是固定的
枚举类型名称与成员变量名需要符合变量的命名规则与规范
红框是命名空间的范围;蓝框是类的范围;折叠起来的是Main方法的范围
枚举只能定义在命名空间与类的大括号之间,不能声明在方法中(以上图为例)
定义在命名空间内整个命名空间内都可以使用;定义在类中只能在该类中使用
枚举:可以使用一个整形类型来存储,枚举类型可以提取的每个值都存储为该类型的 一 个值 ,默认情况下该类型为 int;可以在定义枚举时使用冒号加添加的类型 ,就可以指定为其他的整形类型,可以指定以下类型(在错误列表中)
枚举值:如果枚举成员没有赋默认值,则编译器在默认情况下为每个成员分配一个整数值(该值从零开始)枚举的第一个成员将为0,以后的每个连续枚举成员的值将增加1
注意:最好不要让成员的值是一样的(不管是指定赋值还是它默认的自动赋值)
//在命名空间与类中声明(暂时)
//使用默认值
enum Gender1 //成员变量默认值的类型为int
{
男, //默认为0
女, //默认为1
其他 //默认为2 最后一个没有逗号
//成员变量的值,紧跟上一个成员变量加1
}
//上面的意思是
//enum关键字是定义了 Gender1 的一个枚举类型
//该枚举只有三个值即男,女,其他(相当于枚举Gender1类型而言)
//因此 Gender1 就是我们自定义的枚举类型
//=========================================
//自定义默认值
enum Gender2:byte //指定成员变量值的类型
{
男=1, //改变默认类型(int)与默认值(0)
女=3, //改变紧跟上一个成员变量的默认值(2)
其他 //会在前一个的基础(3)上加1,其他=4
//只能指定该类型范围的值
//其他2=256 就会超出byte范围
}
//Gender1与Gender2是自定义的枚举名称
//枚举中的 男,女,其他 相当于声明的变量名
//Gender2中 男=1 其中1就是变量名为男的值
//=========最好不要有以下操作===================
enum Gender3
{
男=1,
女=3,
其他1,//默认赋值为4
其他2=1,
其他3 //默认赋值为2 或者指定赋值 其他3=2
}
使用枚举的益处:与常量类似,常量是只能使用固定的值;枚举只能使用固定的枚举成员,规范数据;如表示性别为男的有:男性,男孩,男人,老头等,程序使用时会非常麻烦,如查找性别为男的...使用枚举只需一个条件,使用表示男性的不知道需要使用多少个或连接的表达式
声明使用枚举
//声明一个枚举 nan
Gender1 nan; //上面已定义
//为nan赋值
nan = Gender1.男; //等于后面按空格会自动给出自定义的枚举名称
// 使用nan
Console.WriteLine(nan);
Console.ReadKey();
枚举变量nan的值只能是Gender1中的3个成员变量,保证值的安全,防止赋其他的值
枚举变量nan的值不能是Gender2中的成员变量,虽然Gender1与Gender2中成员变量名称一样,但是Gender1与Gender2为两个自定义的枚举类型
因为枚举是基于整形,因此可以强制转换为相应整形值
int类型强制转换为枚举类型
字符串转换为枚举类型的固定语法格式
(T)Enum.Parse(typeof(T), str)
(Gender1)Enum.Parse(typeof(Gender1),"输入的字符串")
根据格式自学编写实现代码