C#基础5——复杂数据类型:结构体

1.基本概念

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

它是数据和函数的集合

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

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

2.基本语法

结构体一般写在namespace语句块中

结构体关键字struct

struct 自定义结构体名
{
    //第一部分
    //变量

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

    //第三部分
    //函数
}

注意:结构体名字我们的规范是帕斯卡命名法

3.实例

表现 学生数据 的 结构体

struct Student
{
    //1.变量
    //结构体申明的变量不能直接初始化
    //int age = 10;//报错
    //变量类型可以写任意类型,包括结构体,但是不能是自己的结构体,可以是其他的
    int age;
    bool sex;
    int stuId;
    string name;

    //2.构造函数

    //3.函数方法
    //作用:表现这个数据结构的行为的

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

4.结构体的使用

class Program
{      
    static void Main(string[] args)
    {
        //变量类型 变量名
        Student st1;
        st1.age = 18;
        st1.name = "张三";
        st1.sex = false;
        st1.stuId = 123456;
        st1.Speak();
        //打印结果:我的名字是张三,我今年18岁
    }
}

5.访问修饰符

修饰结构体中变量和方法是否能被外部使用

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

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

默认不写为private

6.结构体的构造函数

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

    构造函数—般是用于在外部方便初始化的

struct Student
{
        public int age;
        public bool sex;
        public int stuId;
        public string name;

        //构造函数
        public Student (int age,bool sex,int stuId,string name)
        {
            //新的关键字this
            //代表自己
            this.age = age;
            this.sex = sex;
            this.stuId = stuId;
            this.name = name;
        }

        public void Speak()
        {
            Console.WriteLine("我的名字是{0},我今年{1}岁", name, age);
        }
}
class Program
{      
        static void Main(string[] args)
        {
           	Student s2 = new Student(18, true, 2, "小红");
            s2.Speak();
            //打印结果:我的名字是小红,我今年18岁
        }
}

7.总结

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

访问修饰符:

        public 和 private 用来修饰变量和方法的

        public 公共的 可以被外部访问

        private 私有的 只能在内部使用

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

注意:
        1.在结构体中申明的变量 不能初始化 只能在外部或者在函数中赋值(初始化)
        2.在结构体中申明的函数 不用加static

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值