结构体:就是一个自定义的集合,里面可以放各种类型的元素,用法大体跟集合一样。
一、定义的例子:
struct student
{
public int nianling;
public int fenshu;
public string name;
public string sex;
public int sum;
}
以上的语句就是定义一个名称为student的结构体,其中包含int类型的年龄、分数、总和,和string类型的姓名、性别。
二、用法:
在main主函数外面定义了一个名称为student的结构体,以便于main函数之中使用。
student st = new student();//这句话是在main函数之中定义了一个名为st的student类型的结构体。
下面开始为里面的每个元素赋值:(结构体名+点+结构体里面的变量名称=值)
main函数下
{
st.nianling=22;
st.fenshu=80;
st.name="小李";
}
赋值完成之后可以打印出被赋值的项。
三、结构体类型里面包含结构体类型:
可以在此前的student的结构体中在定义一个结构体
public shuxing sx;//代表一个shuxing结构体变量组
}
public struct shuxing
{
public double tizhong;
public double shengao;
public int nianling;
public string hunfou;
}
这样就可以在用的时候省下再次初始化结构体。
//struct jiegouti
//{
// public string name;
// public string kecheng;
// public Fen fenshu;
//}
//struct Fen
//{
// public double yufen;
// public double shufen;
// public double yingfen;
//}
//等号,在枚举类型中的意思
//指向某个索引号
enum meiju :int
{
one=1,
two=0,
three,
//若等于之前出现的一个常量,那么会将这个常量直接拿过来
four
}
struct student//创建一个学生的结构体
{
public int code;//学号
public string name;//姓名
public double score;//分数
}
static void Main(string[] args)
{
ArrayList al = new ArrayList();//初始化集合
Console.Write("请输入班级人数:");
int n = int.Parse(Console.ReadLine());
for (int i = 0; i < n; i++)
{
student st = new student();//初始化结构体
Console.Write("请输入第{0}个学生的学号:",i+1);
st.code = int.Parse(Console.ReadLine());
Console.Write("请输入他/她的姓名:");
st.name = Console.ReadLine();
Console.Write("请输入他/她的分数:");
st.score = double.Parse( Console.ReadLine());
al.Add(st);//将st这个结构体对象添加进al集合里面
}
Console.WriteLine("所有人员信息输入完毕!请按回车键查看!");
Console.ReadLine();
//Console.WriteLine(al[0]);
for (int i = 0; i < n; i++)
{
student st = (student)al[i];
Console.WriteLine("第{0}个学生的学号是{1},姓名是{2},成绩是{3}", i + 1, st.code, st.name, st.score);
}
Console.ReadLine();
// Console.WriteLine((int)meiju.one);
// Console.WriteLine((int)meiju.two);
// Console.WriteLine((int)meiju.three);
// Console.WriteLine((int)meiju.four);
// Console.ReadLine();
////结构体初始化
// jiegouti jgt = new jiegouti();
// jgt.name = "张三";
// jgt.kecheng = "语文";
// //jgt.fenshu = 99;
// jgt.fenshu.yufen=55;
// jgt.fenshu.shufen = 88;
// jgt.fenshu.yingfen = 99;
//jiegouti jgt2 = new jiegouti();