您的位置:首页 > 编程语言 > C#

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);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: