文章目录
一、枚举类型
1.定义
关键字:enum 主函数的外面,和主函数并列放置
namespace ConsoleApp1
{
class Program
{
enum WeekDays { Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday }
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
}
}
WeekDays不是变量,而是和int、double等一样的数据类型,该枚举类型的值只能是七个枚举项之一,每个枚举项表面是一串字符串,实则关联着一个整数值,默认情况下第一项对应0,第二项对应1,依次递增,枚举项之间用逗号隔开。
2.声明和使用
class Program
{
enum WeekDays { Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday }
static void Main(string[] args)
{
//声明枚举
WeekDays today = WeekDays.Monday;
if (today!=WeekDays.Saturday||today!=WeekDays.Sunday)
{
Console.WriteLine("打工人,打工魂");
}
else
{
Console.WriteLine("躺平中····");
}
}
}
当然也可以用枚举项所关联的整数来赋值,或者参与运算、循环等,但必须进行显示转换
//声明枚举
WeekDays today =(WeekDays) 3;
二、结构体
1.定义
关键字:struct
struct Info
{
public string name;
public double age;
public string phone;
public string address;
}
class Program
{
static void Main(string[] args)
{
}
}
2.声明和使用
struct Info
{
public string name;
public double age;
public string phone;
public string address;
}
class Program
{
static void Main(string[] args)
{
Info info;
info.name = "小白";
info.age = 25;
info.phone = "123-456789";
info.address = "北京海淀";
}
}
三、数组
1.一维数组
声明方式:
第一种数组长度由初始化列表中的元素个数确定
第二种数组长度由new运算符后的数组决定
//第一种:直接赋值(例如:考试成绩)
int[] scores = {89,75,66,52,67,44 };
//第二种:只是声明一个数组而不进行初始化
string[] friendName = new string[3];
使用:第一种直接赋值应用
static void Main(string[] args)
{
//第一种:直接赋值(例如:考试成绩)
int[] scores = {89,75,66,52,67,44 };
//计算成绩总和
int sum = 0;
for (int i = 0; i < scores.Length; i++)
{
sum = sum + scores[i];
}
Console.WriteLine("六科总和为:{0}",sum);
}
第二种不直接进行初始化应用:
static void Main(string[] args)
{
//第二种:只是声明一个数组而不进行初始化
string[] friendName = new string[3];
//赋值
friendName[0] = "小小";
friendName[1] = "白白";
friendName[2] = "悠悠";
Console.WriteLine("我有{0}位朋友:", friendName.Length);
foreach (string name in friendName)
{
Console.WriteLine(name);
}
}
foreach语句只对数组 进行读取操作,不能通过迭代变量name修改元素的值
2.二维数组
声明方式:
static void Main(string[] args)
{
//第一种:直接赋值
int[,] Matrix = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
//第二种:new运算符声明
int[,] Matrix1 = new int[3, 3];
//三维定义
int[,,] Matrix2= new int[1, 2, 3];
}
使用:第一种直接赋值
static void Main(string[] args)
{
//第一种:直接赋值
int[,] Matrix = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
//for循环输出这个矩阵
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
Console.Write(Matrix[i, j] + "");
}
Console.Write("\n");
}
//foreach输出矩阵的值
foreach (int number in Matrix)
{
Console.Write(number);
}
}
第二种:new运算符
static void Main(string[] args)
{
//第二种:new运算符声明
int[,] Matrix1 = new int[3, 3];
//赋值
int num = 1;
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
Matrix1[i, j] = num;
num++;
Console.Write(Matrix1[i, j]+" ");
}
Console.Write("\n");
}
}
3.可变数组
声明可变数组需要指定行数,不需要指定列数,初始化需要逐行进行
static void Main(string[] args)
{
int[][] array = new int[2][];
//初始化
array[0] = new int[3] { 1, 2, 3 };
array[1] = new int[4] { 1, 2, 3, 4 };
foreach (int[] line in array)
{
foreach (int num in line)
{
Console.Write(num);
}
}
}