C#基础(6)——常量/枚举/结构/数组
2017-10-25 15:40
513 查看
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, f1a5 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);
相关文章推荐
- 【黑马程序员】2.C#基础之常量 枚举 结构
- C#学习第四天 常量、枚举、结构、数组
- C#基础知识(五)——常量、枚举、结构体、数组
- C#学习笔记12:枚举、结构、数组基础学习
- 【1】C#基础:数据类型、运算、随机、枚举、结构、数组、列表、文件和文件流、序列化、MD5
- C#基础之结构体&枚举&数组
- C#中常量\枚举\结构及数组的运用
- 【C#基础知识】之结构、数组及常用的几种排序方法总结
- C#基础总结之一变量常量-if嵌套语句-witch结构-类型转换
- C#基础-结构、枚举和数组(Day4)
- C#基础知识整理:C#类和结构(1)
- C#基础-结构,部分类和Object 类
- 在 C# 中处理结构内的数组
- 17、C#中的常量和结构的定义与使用
- C#基础之数组 (排序,对象大小比较)
- C#基础解析之Ⅲ 【循环结构】
- [C++学习历程]基础部分 C++中的指针数组和结构
- C#控制台基础 字节数组转UTF8格式的字符串
- C# 枚举、结构和数组
- 数组结构基础——转载声明