关于这里未定义的属性为什么值是0?

来源:4-7 【操作】构造函数的继承

慕莱坞0998854

2022-12-25

老师你好,在本节中,出现了这么一个情况,对于Staff这个类,我们没有给Number这个属性赋初始值,这时候打印出来是0,老师说到:“一般来说,整数对象在没有赋值的时候,它就是0”,请问这句话怎么理解?我后来尝试了string类型和bool类型,发现他们似乎也有默认值,分别是""false, 在别的语言中,可能会强制要求我在定义基本类型的属性的时候必须加上初始值,C#是不是自动帮我们做好了?

public class Staff
{
    public int Number { get; set; }

    public Staff()
    {
        Console.WriteLine("员工类初始化");
    }

    public Staff(int number)
    {
        Number = number;
    }
}


写回答

1回答

阿莱克斯刘

2022-12-28

对,c#、java以及python这类稍微高级一点的语言,在声明基本数据类型的时候会自动初始化默认的数据,比如说int类型模式值为0、string默认值""、bool默认值为false。但是请注意,在c/c++中没有默认的初始化值,在声明变量时,比如声明一个int会赋一个随机数据(其实就是上次内存使用的遗留数据)。
0
0

C#速成指南--从入门到进阶,实战WPF与Unity3D开发

系统掌握C#核心和应用,获得全行业适配的技能

870 学习 · 200 问题

查看课程