C#基础(6)——常量/枚举/结构/数组

来源:互联网 发布:幼儿编程app 编辑:程序博客网 时间:2024/06/01 09:06

1.常量

作用是不可更改
const double pi =3.14;//不能改变

2.枚举

作用是规定取值范围
[public] enum 枚举名
{

}
注意:
public:访问修饰符,通用的,都可以访问
enum:关键字,声明枚举的关键字
枚举名:遵从Pascal命名规则

将枚举声明的位置写在命名空间的下面,类的上面,表示所有的类都能够用到。

int与枚举间转换:

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ChuangzhiConsel{    public enum Gender    {        男,        女    }    public enum QQState    {        Online,        OffLine,        Busy,        QMe    }    class Program    {        static void Main(string[] args)        {            Gender gender = Gender.男;//取枚举值,先声明枚举类型,再赋值            QQState qq_state = QQState.Online;            int n = (int)qq_state;//强制转换为int类型            Console.WriteLine(n);            Console.ReadKey();        }    }}

实际是取下标0-end
这里写图片描述
这里写图片描述

int 到枚举:

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ChuangzhiConsel{    public enum Gender    {        男,        女    }    public enum QQState    {        Online,        OffLine,        Busy,        QMe    }    class Program    {        static void Main(string[] args)        {            int n1 = 3;            QQState qqstate = (QQState)n1;            Console.WriteLine(qqstate);            Console.ReadKey();        }    }}

这里写图片描述

枚举类型到string:

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ChuangzhiConsel{    public enum Gender    {        男,        女    }    public enum QQState    {        Online,        OffLine,        Busy,        QMe    }    class Program    {        static void Main(string[] args)        {            QQState qqstate = QQState.Online;            string str = qqstate.ToString();            Console.WriteLine(str);            Console.ReadKey();        }    }}

这里写图片描述

麻烦过程:将字符串转为枚举类型

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ChuangzhiConsel{    public enum Gender    {        男,        女    }    public enum QQState    {        Online,        OffLine,        Busy,        QMe    }    class Program    {        static void Main(string[] args)        {            string str = "0";//将字符串转为枚举类型            QQState state = (QQState)Enum.Parse(typeof(QQState),str);            Console.WriteLine(state);            Console.ReadKey();        }    }}

这里写图片描述

打印枚举状态

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ChuangzhiConsel{    public enum Gender    {        男,        女    }    public enum QQState    {        Online=1,        OffLine,        Busy,        QMe    }    class Program    {        static void Main(string[] args)        {            QQState state;            bool exit = false;            while (!exit)            {                Console.WriteLine("请选中状态:\n1、Online\n2、OffLine\n3、Busy\n4、QMe");                string str = Console.ReadLine();                switch (str)                {                    case "1": state = (QQState) Enum.Parse(typeof(QQState),str);                        Console.WriteLine("在线状态:{0}", state);                        break;                    case "2":  state = (QQState)Enum.Parse(typeof(QQState), str);                        Console.WriteLine("在线状态:{0}", state);                        break;                    case "3": state = (QQState)Enum.Parse(typeof(QQState), str);                        Console.WriteLine("在线状态:{0}", state);                        break;                    case "q": Console.WriteLine("退出...");                        exit = true;                        break;                    default:                        Console.WriteLine("输入错误!");                        break;                }            }        }    }}

这里写图片描述

3.结构

一次声明多个不同类型的变量。
[public] struct 结构名
{

}

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ChuangzhiConsel{    public struct Person    {        public string _name;//字段,不叫变量,一定要有"_"        public char _gender;        public int _age;    }    class Program    {        static void Main(string[] args)        {            Person zsPerson;            zsPerson._name = "张三";            zsPerson._age = 25;            zsPerson._gender = '男';            Console.WriteLine("姓名:{0}", zsPerson._name);            Console.WriteLine("年龄:{0}", zsPerson._age);            Console.WriteLine("性别:{0}", zsPerson._gender);            Console.ReadKey();        }    }}

这里写图片描述

4.结构与枚举混合

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ChuangzhiConsel{    public struct Person    {        public string _name;//字段,不叫变量,一定要有"_"        public Gender _gender;        public int _age;    }    public enum Gender    {        男,        女    }    class Program    {        static void Main(string[] args)        {            Person zsPerson;            zsPerson._name = "张三";            zsPerson._age = 25;            zsPerson._gender = Gender.男;            Console.WriteLine("姓名:{0}", zsPerson._name);            Console.WriteLine("年龄:{0}", zsPerson._age);            Console.WriteLine("性别:{0}", zsPerson._gender);            Console.ReadKey();        }    }}

5.数组

数组的声明方式:
1、数组类型[] 数组名称 = new 数组类型[长度];
2、数组类型[] 数组名称 = {1,2,3,4..,9};
3、数组类型[] 数组名称 = new 数组类型[长度]{1,2,3,…,9};
4、数组类型[] 数组名称 = new 数组类型[]{1,2,3,…,9};

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ChuangzhiConsel{    class Program    {        static void Main(string[] args)        {            int[] array = new int[10];            for (int i = 0; i < array.Length; i++)            {                array[i] = i;            }            Console.WriteLine(array[array.Length-1]);//取最后一个            Console.ReadKey();        }    }}

随机产生数组,求数组最大值、最小值、总值、平均值:

这里写图片描述

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ChuangzhiConsel{    class Program    {        static void Main(string[] args)        {            Random r = new Random();            int[] array = new int[10];            int maxValue = int.MinValue;            int minValue = int.MaxValue;            int sum = 0;            for (int i = 0; i < array.Length; i++)            {                array[i] = r.Next(0,101);                maxValue = array[i] > maxValue ? array[i] : maxValue;//使用三元表达式                minValue = array[i] < minValue ? array[i] : minValue;                sum += array[i];                Console.WriteLine(array[i]);            }            Console.WriteLine("最大值:{0};最小值:{1};总和:{2};均值:{3:0.00}", maxValue, minValue, sum, (double)(sum *1.0/ array.Length));            Console.ReadKey();        }    }}

数组交换

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ChuangzhiConsel{    class Program    {        static void Main(string[] args)        {            Random r = new Random();            int[] array = new int[9]{0,1,2,3,4,5,6,7,8};            int temp;            for (int i = 0; i < array.Length/2; i++)            {                temp = array[i];                array[i] = array[array.Length-1-i];                array[array.Length-1-i]=temp;            }            Console.WriteLine("对称交换后:");            for (int i = 0; i < array.Length; i++)            {                Console.WriteLine(array[i]);            }            Console.ReadKey();        }    }}

这里写图片描述

降序排列随机数组

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ChuangzhiConsel{    class Program    {        static void Main(string[] args)        {            Random r = new Random();            int[] array = new int[10];            //产生随机数组            for (int i = 0; i < array.Length; i++)            {                array[i] = r.Next(0, 101);                Console.Write("{0} ",array[i]);            }            //降序排列            for (int i = 0; i < array.Length-1; i++)            {                for (int j = 0; j < array.Length-1-i; j++)                {                    if (array[j] < array[j+1])                    {                        int temp = array[j];                        array[j] = array[j+1];                        array[j + 1] = temp;                    }                }            }            //打印            Console.WriteLine("排序:");            for (int i = 0; i < array.Length; i++)            {                Console.Write("{0} ",array[i]);            }            Console.ReadKey();        }    }}

这里写图片描述

懒人方式:
Array.Sort(array);//升序
再降序用:
Array.Reverse(array);

原创粉丝点击