声明一个常量类型 const 变量类型 变量名 = 值;
常量最大的特点就是不能够被重新赋值;
枚举语法: [public] enum 枚举名
{
值1,
值2,
值3,
......
}
public:访问修饰符。公开的公共的,哪都可以访问
enum:关键字,声明枚举的关键字;
枚举名:要符合Pascal命名规范;
不要在Main函数里面声明枚举;声明枚举最好在命名空间的下面,类的上面。表示这个命名空间下,所有的类都可以使用这个枚举
枚举就是一个简单的变量类型,跟int,double,string,char,decimal,bool是一样的。只是枚举类型声明,赋值,使用上和它们不一样,但本质上一样,都是用来存数据
public enum Gender
{
男,
女
}
int n = 10;
Gender gender = Gender.男; 一样的格式
public enum QQState
{
OLine,
OffLine,
Leave,
Busy,
QMe
}
枚举类型默认跟int类型可以互相强制转换,枚举类型跟int类型是兼容的;当转换一个枚举中没有的值得时候,不会抛异常,而是直接将数字显示出来
1.将枚举类型转换为int类型
QQState state = QQState.OnLine;
int n = (int)state; n=0,说明枚举类型默认是从0开始的;
2.将int类型转换为枚举类型
int n1 = 3;
QQState state = (QQState)n1; state值为busy;
所有的类型都可以转换成string类型,调用ToString()去转;
3.将枚举类型转换为string类型
QQState state = QQState.OnLine;
string s = state.ToString(); s的值为OnLine;
4.将string类型转换为枚举类型 为什么没有Convert.ToEnum();因为枚举类型的类型不固定,是我们自己写的, 但是有Enum.Parse();
string s = "0";//string s ="OnLine"也可以; string s = "8";会直接输出8; string s = "ABCD";会报异常
QQState state = (QQState)Enum.Parse(typeof(QQState),s);
结构可以帮助我们一次性声明多个不同类型的变量;
结构语法:
[public] struct 结构名
{
成员名;//字段
}
结构名用Pascal命名规范;
结构跟枚举一样也是写在命名空间下面,类的上面,表示在哪都可以用得到;
public struct Person
{
string name;
int age;
char gender;
}
这样写表示这3个变量只能在结构里面访问,出了这个结构就访问不到了,
因此改成
public struct Person
{
public string _name;
public int _age;
public char _gender;
}
int也是一种结构,结构和枚举本质都是变量类型;
Person zsPerson;
zsPerson.name = "张三";
zsPerson.age = 21;
zsPerson.gender = ‘男‘;
结构中的变量不叫变量,叫字段;
变量面前不允许加访问修饰符;字段面前可以加访问修饰符;
变量和字段都是用来存储数据; 变量和字段最本质的区别,在程序运行的时候,变量只能存一个值,但是字段能存很多值;
自我小结,字段和方法是平级的,变量是在方法里面的;因此变量面前不允许加访问修饰符;字段面前可以加访问修饰符
在给字段取名字的时候,规范上都应该在名字前加_
枚举类型面前是两个黄色的小方块