使用关键字const修饰即可:
- const int num =32;
创建枚举变量方式:
[public] enum Gender
{
man,
woman,
male,
female
}
[public] enum QqState
{
Online=4,
Offline=2,
Busy=30,
QMe=1
}
//[public] 表示可选
Remark:枚举类型需要放置在命令空间或者类里面,不能放在Main函数里面,大多放在命令空间里
枚举类型与其他类型的转换
枚举类型与int类型的转换
将枚举类型强制转换成为int类型,需要注意int类型和枚举类型是相互兼容的,所以可以通过强制类型转换的语法互相转换
当转换一个枚举中没有的值的时候,不会抛出异常,而是 直接将数字显示出来
枚举 ==> int
Gender gender = Gender.man;
Console.WriteLine(gender);
int num0 = (int)Gender.man;
Console.WriteLine(num0);
int num1 = (int)Gender.woman;
Console.WriteLine(num1);
int num2 = (int)Gender.male;
Console.WriteLine(num2);
Console.WriteLine((int)Gender.female);
//如果在枚举中设置了枚举变量的值,如这里将在枚举中设置 man=3,于是强转后man=3,后面几个则依次+1,即woman=4
int ==> 枚举
如果将int转为枚举类型时,枚举类型的大小包含这个int的值,则对应转换成该枚举变量,int的值在枚举类型大小值之外,则仍然是原来的int的值的大小
int n1 = 4;
Gender gender = (Gender)n1;
Console.WriteLine(n1);
Console.WriteLine(gender);
枚举 ==> string
枚举类型与string类型的转换,注意任何类型都可以转换成为string类型,利用ToString去转
Gender gender = Gender.woman;
Console.WriteLine(gender.ToString());
string ==> 枚举
前面介绍了Convert.ToInt32(), int.parse() ,int.TryParse()
如果字符串在枚举里没有对应的转换对象,对于整数而言直接返回数字,对于字符串(小数在这里也是字符串)程序不会中断但会在结果中显示没有找到
string s = "asddfas";
Gender gender2 = (Gender)Enum.Parse(typeof(Gender), s);
Console.WriteLine(gender2);
Remark :当手动给枚举指定数值时,可以任意指定枚举变量对应的数值
枚举练习
Q :选择您的QQ状态
A :
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("请选择您的QQ状态,1-Online,2-Offline,3-Busy,4-QMe");
string str= Console.ReadLine();
switch (str)
{
case "1":
QqState s1 = (QqState)Enum.Parse(typeof(QqState), str);
Console.WriteLine(s1);
break;
case "2":
QqState s2 = (QqState)Enum.Parse(typeof(QqState), str);
Console.WriteLine(s2);
break;
case "30":
QqState s3 = (QqState)Enum.Parse(typeof(QqState), str);
Console.WriteLine(s3);
break;
case "4":
QqState s4 = (QqState)Enum.Parse(typeof(QqState), str);
Console.WriteLine(s4);
break;
}
#endregion
}
}
public enum QqState
{
Online=1,
Offline,
Busy,
QMe
}
}
结构
结构可以帮助我们一次性声明多个不同类型的变量,放在命令空间里
语法:
[public] struct nameofStruct(结构名)
{
成员;
}
public struct Person
{
string name;
int age;
char gender;
}
结构练习
using System;
namespace ConsoleApp1
{
public struct Mycolor
{
public int _red;
public int _green;
public int _blue;
}
class hello
{
static void Main(string[] args)
{
//定义一个结构叫Mycolor,有三个成员变量,分别定义为int类型的red,green,blue
//声明一个Mycolor类型的变量,并对其成员赋值,是其表示一个红色
Mycolor mc;
mc._red = 255;
mc._blue = 0;
mc._green = 0;
}
}
}
using System;
//using system.collections.generic;
//using system.linq;
//using system.text;
//using system.threading.tasks;
namespace ConsoleApp1
{
public struct Person
{
//使用 _ 是为了区分字段和变量
public string _name;//字段,可以存很多值,不叫变量(只能存储一个值)
public int _age;
public Gender _gender;
}
public enum Gender
{
男,
女
}
class Program
{
static void Main(string[] args)
{
Person zsPerson;
zsPerson._name = "张三";
zsPerson._age = 18;
zsPerson._gender = Gender.男;
Person lsPerson;
lsPerson._name = "李四";
lsPerson._age = 19;
lsPerson._gender = Gender.女;
}
}
}