枚举定义类型
枚举类型是自定义类型,这是与前面学习的类型最大的差别
EquipType可以被认为是一种数据类型,也可以称之为是枚举类型
枚举类型名 枚举值
枚举是一个值类型,枚举还可以标记一个整型数字予以匹配,默认从零开始
枚举声明时,标记数字,顺序无所谓
枚举类型可以和整型进行显式转换
enum GameType
{
Begin = 1,
Stop = 2 ,
Over = 0
}
enum ArmsType
{
Buqiang,
Jiqiang,
Jujiqiang,
Jundao
}
结构体
结构体声明
结构体是自定义类型
struct 结构体名称{结构体内容}
//学生结构体
struct student{
public string name;
public int num;
public int class;
}
注意:结构体内部声明字段不能有初始值。
结构体是值类型
student zhangsan;
结构体内变量赋值
使用点运算(.)
student.name = “zhangsan”;
student.sex = “M”;
student.num = “123456”;
结构体的构造函数
构造函数是结构体构造时,调用的函数
构造函数在构造体内部创建
自定义构造函数,必须给所有的字段进行初始化赋值。
//怪物
struct Enemy
{
public string name;
public int atk;
public int hp;
public Enemy(string name,int atk,int hp)
{
this.atk = atk;
this.name = name;
this.hp = hp;
}
}
static void Main(string[] args)
{
//战斗 名字 血量 攻击 速度 暴击率(1-100) 闪避率(1-100) 金钱 经验
// Battle("强盗", 42, 30, 95, 10, 5, 10, 1500);
Enmy QD;
QD.name = "强盗";
QD.hp = 100;
QD.g_hp = new Random().Next(0,10);
QD.atk = new Random().Next(20,40);
QD.sakt = 10;
Console.WriteLine(QD.name + QD.sakt);
Console.WriteLine(QD.hp + QD.name + QD.sakt);
Console.WriteLine(QD.hp);
Console.WriteLine("{0},{1}",QD.g_hp,QD.atk);
}
访问修饰符
什么是访问修饰符?
1.所有类型和类型成员都具有可访问性级别,用来控制在其他代码位置能否访问到类型或成员。
2.设置了成员的可访问限制,提高代码的安全性。
常用的访问修饰符
1.public (共有的)同一程序集的任何其他代码或者引用该程序集的其他程序集都可以访问该类型或成员
2.private(私有的)只有同一类或结构中的代码可以访问该类型或成员
3.protected(受保护的)只有同一类或结构中或此类派生中的代码可以访问该类型或成员
4.internal(内部的)同一程序集中的任何代码都可以访问该类型或成员,但其他程序集不可以。