一、定义
结构体是自定义的新数据类型,所包含数据称为成员,成员数据可为多种数据类型,能更准确的描述事物.
在结构体的使用中,强制转换不可使用Convert.,因其只能用来转换默认数据类型,结构体成员中也可包含结构体类型的数据.
二、构建
public struct ReportCard
public--公用的 struct--构建 ReportCard--结构体名称
PS:构建结构体时写在Main函数外,将"class……"删除,这样右边所有项均可使用.
三、例
例1:创建结构体,显示学生学号、姓名、CSharp成绩、Web成绩、DataBass成绩及总分.
{ public struct ReportCard { public int No; public string name; public int CSharp; public int Web; public int DataBase; public int Sum; } static void Main(string[] args) { ReportCard Z=new ReportCard(); Z.No=1; Z.name="张涛"; Z.CSharp=92; Z.Web=95; Z.DataBase=90; Z.Sum=Z.CSharp+Z.Web+Z.DataBase; Console.WriteLine("学号:{0},姓名:{1},C#成绩{2},网页成绩:{3},数据库成绩:{4},总分:{5}",Z.No,Z.name,Z.CSharp,Z.Web,Z.DataBase,Z.Sum); }
}
信息返回:
例2:成绩表,显示学生学号、姓名、CSharp成绩、Web成绩、DataBass成绩及总分.
{ public struct Score { public int CSharp; public int Web; public int DataBaes; public int Sum; } public struct student { public int No; public string name; public Score Degree; } static void Main(string[] args) { student[] st= new student[4]; //输入 for(int i=0;i<4;i++) { st[i].No = i + 1; Console.WriteLine("正在输入第{0}个学生的成绩",st[i].No); Console.Write("姓名:"); st[i].name=Console.ReadLine(); st[i].Degree=new Score(); Console.Write("CSharp:"); st[i].Degree.CSharp=Convert.ToInt32(Console.ReadLine()); Console.Write("网页:"); st[i].Degree.Web=Convert.ToInt32(Console.ReadLine()); Console.Write("数据库:"); st[i].Degree.DataBaes = Convert.ToInt32(Console.ReadLine()); st[i].Degree.Sum=st[i].Degree.CSharp+st[i].Degree.Web+st[i].Degree.DataBaes; } //排序 for(int i=1;i<4;i++) { for(int j=1;j<5-i;j++) { if(st[j-1].Degree.Sum<st[j].Degree.Sum) { student t=st[j-1]; st[j-1]=st[j]; st[j]=t; } } } //输出 Console.WriteLine("学号 姓名 CSharp 网页 数据库 总分 名次"); for(int i=0;i<4;i++) { Console.Write(st[i].No+" "); Console.Write(st[i].name+" "); Console.Write(st[i].Degree.CSharp+" "); Console.Write(st[i].Degree.Web+" "); Console.Write(st[i].Degree.DataBaes+" "); Console.Write(st[i].Degree.Sum+" "); Console.WriteLine(i+1); } } } }
返回信息: