using System; namespace Lesson { #region 知识点一 基本概念 //结构体 是一种自定义变量类型 类似枚举需要自己定义 //他是数据和函数的集合 //在结构体中 可以声明各种变量和方法 //作用:用来表现存在关系的数据集合 比如用结构体变现学生 动物 人类等等 #endregion #region 知识点二 基本语法 //1.结构体一般卸载 namespace语句块中 //2.结构体关键字 struct //3.结构体中声明的变量不能直接初始化 struct StructName//可以是中文的 { //第一部分 //变量(不能直接初始化 //第二部分 //构造函数(可选 //第三部分 //函数(一般情况下都有 } //注意:结构体名字是帕斯卡命名法 #endregion #region 知识点三 实例 struct Student { //变量 //年龄,性别,学号,姓名 #region 知识点五 访问修饰符 //修饰结构体中变量和方法 是否能够被外部使用 //public 公共的 可以被外部访问 //private 私有的 只能在内部使用 //默认不写 为private #endregion public int age; public bool sex; public int number; public string name; //结构体中可以包含其他结构体,但不能是本结构体 //构造函数 #region 知识点六 结构体的构造函数 //基本概念 //1.没有返回值 //2.函数名必须和结构体名相同 //3.必须有参数 //4.如果声明了构造函数 那么必须在其中队所有变量数据初始化 //5.结构体和构造函数可以重载,但是注意第4点 //构造函数一般用在外部,方便初始化使用的 public Student(int age, bool sex, int number, string name) //必须有参数 { //新的关键字this,代表自己 this.age = age;//this.age是构造函数中写的age,而后面的age是结构体上面的声明的age this.sex = sex; this.number = number; this.name = name; } #endregion //函数 //表现这个数据结构的行为 //注意:在结构提中的方法,目前不需要加static关键字 public void Speak() { //在函数中可以直接使用结构体内部声明的变量 Console.WriteLine("我的名字是{0},今年{1}岁",name,age); } //函数可以根据需求写任意个 } #endregion class Program { static void Main(string[] args) { #region 知识点四 结构体的使用 //变量的声明 //变量类型 变量名; Student s1; //如果没写后private打s1.是tab不补齐的 s1.age = 18; s1.sex = false; s1.number = 123; s1.name = "HKK"; s1.Speak(); Student s2 = new Student(8,true,321,"KKH"); //上面的代码可以替代下面的代码 //s2.age = 8; //s2.sex = true; //s2.number = 321; //s2.name = "KKH"; s2.Speak(); #endregion } } }