116 lines
3.3 KiB
C#
116 lines
3.3 KiB
C#
|
|
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
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|