C#系列之结构体

结构体是一种自定义变量类型,类似枚举需要自己定义,它是数据和函数的集合,在结构体中可以声明各种变量和方法。

作用:用来表现存在关系的数据集合,比如用结构体表现学生,动物,人类等。

1.基本语法

结构体一般写在namespace语句块中,结构体关键字:struct

struct  自定义结构体名

{

     第一部分 变量

     第二部分 构造函数(可选)

     第三部分 函数

}

注意:结构体的名字,我们使用的是帕斯卡命名法!

2.实例

struct Student
{
//变量
//结构体声明的变量,不能直接初始化
//变量类型,可以写任意类型,包括结构体,但是不能是自己的结构体,可以是其它的。
//Student s;不能是自己的结构体
//年龄
int age;
//性别
bool sex;
//学号
int number;
//姓名
string name;

//构造函数

//函数方法
//表现这个数据结构的行为

//注意:在结构体中的方法,目前不需要添加static关键字
void Speak()
{
//函数中可以直接使用结构体内部声明的变量
Console.WriteLine("我的名字是{0},我今年{1}岁",name,age);
}
//可以根据自己的需求写无数个函数

}

如果是自己的结构体,就会造成循环,导致报错,诸君可以自行尝试。

3.结构体的使用

//变量类型 变量名
Student s1;
s1.age=10;
s1.sex=false;
s1.number=1;
s1.name="Nicole Potter";
s1.Speak();

结构体直接点出来使用,需要注意的是,如果里面不是public类型,则在外部无法使用,好处是可以简化程序,具体看第四点。

4.访问修饰符

访问修饰符用于修饰结构体中的变量和方法,是否能被外部使用。

public 公共的,可以被外部访问

private 私有的,只能在内部使用

如果不写,则默认为private.

那么,我们应该如何使用修饰符呢?例如:

//年龄
public int age;
//性别
public bool sex;
//学号
public string number;

此时,也可以

public void Speak()
{
//......
}

这个时候,就可以通过外部点出来直接使用结构体里面的内容。

5.结构体的构造函数

结构体的构造函数是可以重载的。(可见C#系列之函数重载学习函数重载的相关内容)

//基本概念
//1.没有返回值
//2.函数名必须与结构名相同
//3.必须有参数
//4.如果声明了构造函数,必须在其中对所有变量数据初始化

public Student(int age,bool sex,int number,string name)
{
//新的关键字 this
//代表自己
this.age=age;
this.sex=sex;
this.number=number;
this.name=name;
}
Student s2=new Student(19,true,3344,"Nicole Potter");
s2.Speak();

6.总结

⚡结构体中的函数不用加static,但是其它函数要加static,在struct语句块中(其它篇目中有关于函数的描述,此处不再赘述)

//1.概念:结构体struct是变量和函数的集合,用来表示特定的数据集合

//访问修饰符:public和private用于修饰变量和方法,public外部调用,private内部调用,如果不写默认private

//构造函数:没有返回值,函数名和结构体名相同,可以重载,主要是帮助我们快速初始化结构体对象的。

//注意:

//1.在结构体中声明的变量不能初始化,只能在外部或者在函数中赋值(初始化)

//2.在结构体中声明的函数,不用加static.

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Nicole Potter

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值