一.基本概念

结构体是一种自定义变量类型(类似枚举需要自己定义)

它是数据和函数的集合

在结构体中,可以申明各种变量和方法

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

二.基本语法

结构体一般写在namespace语句块中(函数写在结构体(struct)或者类(class)语句块中)

结构体关键字   struct

struct 自定义结构体名(建议英文)
{
    //第一部分
    //变量

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

    //第三部分
    //函数
}

注意:自定义结构体名  用帕斯卡命名法

三.实例

struct Student
{
    //变量
    //年龄,性别,学号,姓名
    int age;
    bool sex;
    string studentNumber;
    string name;
    //变量类型可以写任何类型(包括结构体)但不能是自己的结构体
    //Student s;
    A a;

    //构造函数
        
    //函数方法
    //表现这个数据结构的行为
    //注意:在结构体中的函数  目前不需要添加static关键字
    void Speak()
    {
        Console.WriteLine("我的名字是{0},我今年{1}岁",name,age);
    }
    //可以写很多函数
}
struct A
{
    int i;
}

四.访问修饰符

修饰结构体中的变量和函数(方法)是否能够被外部使用

public 公开的  可以被外部访问和使用

private 私有的  只能在内部使用

默认不写就是  变量和函数(方法)默认为private

五.结构体的使用

struct Student
{
    public int age;
    public bool sex;//true(男) false(女)
    public string studentNumber;
    public string name;

    public void Speak()
    {
        Console.WriteLine("我的名字是{0},我今年{1}岁,学号为{2}",name,age,studentNumber);
        if(sex)
        {    
            Console.WriteLine("我的性别为男");
        }
        else
        {
            Console.WriteLine("我的性别为女");
        }
    }
}

class Program
{
    static void Main(string[] args)
    {
        //申明一个学生s1
        Student s1;
        s1.name = "念陈";
        s1.studentNumber = "111111";
        s1.sex = true;
        s1.age = 21;
        s1.Speak();
        //再申明一个学生s2
        Student s2;
        //s2.age = 17;
    }
}

 

六.结构体的构造函数

1.基本概念

(1)没有返回值

(2)函数名必须和结构体名相同

(3)必须有参数

(4)如果申明了构造函数,那么必须对其中所有变量数据初始化

struct Student
{
    public int age;
    public bool sex;//true(男) false(女)
    public string studentNumber;
    public string name;

    //构造函数一般便于外部初始化的
    public Student(int age,bool sex,string studentNumber,string name)
    {
        //为了区别自己和传进来的变量
        //新的关键字 this 代表自己
        this.age = age;
        this.sex = sex;
        this.studentNumber = studentNumber;
        this.name = name;
    }

    public void Speak()
    {
        Console.WriteLine("我的名字是{0},我今年{1}岁,学号为{2}",name,age,studentNumber);
        if(sex)
        {    
            Console.WriteLine("我的性别为男");
        }
        else
        {
            Console.WriteLine("我的性别为女");
        }
    }
}

class Program
{
    static void Main(string[] args)
    {
        //利用构造函数初始化
        Student s2 = new Student(17,false,"222222","忧郁");
        s2.Speak();
    }
}

2.作用

构造函数一般用于方便结构体初始化

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐