c#入门之枚举和结构体使用详解入门之枚举和结构体使用详解(控制台接收字符串以相反的方控制台接收字符串以相反的方
向输出向输出)
枚举、结构枚举、结构
枚举的类型有限(short、byte…)且是相同的,在MSDN上找到枚举的一些示例,觉得这个还不错:
代码如下:
enum myWeekDay { Monday = 1, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday };
int i = 3;
myWeekDay today = (myWeekDay)i;
枚举是需要先声明的,然后再通过新建一个变量(today)为枚举类型来使用。枚举默认的基本类型值从0开始,递增1,这叫
等差数列。
枚举声明时,建议放在命名空间,当然,也可以放在类或结构中。将其它变量赋值给枚举类型时,需要强制转换,例如:
today = (myWeekDay)myByte。当然,还有Enum.Parse(typeof(),)命令,就不具体研究了,用时再来看。
而结构(struct)就比较好用了,一个结构内支持不同基础数据类型。同样需要先声明结构,然后再声明变量为该结构类型,
从而使用:
代码如下:
enum orientation : byte { north = 1, south = 2, east = 3, west = 4};
struct route
{
public orientation direction;
public double distance;
}
使用public:让调用该结构的代码可以访问该结构的成员。具体应用:
代码如下:
route myRoute;
int myDirection = -1;
double myDistance;
Console.WriteLine(“1) North2) South3) East4) West”);
do
{
Console.WriteLine(“请选择一个行驶方向:”);
myDirection = Convert.ToInt32(Console.ReadLine());
} while (myDirection < 1 || myDirection > 4);
Console.WriteLine(“请输入一个距离:”);
myDistance = Convert.ToDouble(Console.ReadLine());
myRoute.direction = (orientation)myDirection;
myRoute.distance = myDistance;
Console.WriteLine(“指定方向 {0} 的距离是 {1}”, myRoute.direction, myRoute.distance);
注意myRoute.direction = (orientation)myDirection这一行代码,应该是枚举的应用场景:只需要指明枚举值中的基本类型值
i,再通过(enumName)i的方式,即可取得对应的字符串。
声明一个结构:route(创建的结构名) myRoute,再通过 myRoute.属性 的方式访问结构中的成员。