首页 > 代码库 > 15-01-03 C# 语法 06

15-01-03 C# 语法 06

声明一个常量类型      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 = ‘男‘;

结构中的变量不叫变量,叫字段;

变量面前不允许加访问修饰符;字段面前可以加访问修饰符;

变量和字段都是用来存储数据; 变量和字段最本质的区别,在程序运行的时候,变量只能存一个值,但是字段能存很多值;

自我小结,字段和方法是平级的,变量是在方法里面的;因此变量面前不允许加访问修饰符;字段面前可以加访问修饰符

在给字段取名字的时候,规范上都应该在名字前加_

枚举类型面前是两个黄色的小方块

 

15-01-03 C# 语法 06