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);