c#对象初始化器

c#对象初始化器

以往在对对象属性进行初始化时我们一般会使用构造方法的形式对对象属性进行初始化,如

  class Program
    {
        static void Main(string[] args)
        {
            Student student = new Student(15, "spring","男");
        }
       class Student
        {
            public int age { get; set; }
            public string name { get; set; }
            public string sex { get; set; }
            public Student()
            {

            }
            public Student(int age, string name,string sex)
            {
                this.age = age;
                this.name = name;
                this.sex = sex;
            }
        }

    }

而使用对象初始化器

  class Program
    {
        static void Main(string[] args)
        {
            Student student = new Student()
            {
                age = 25,
                name = "java",
                sex = "男"
            };
        }
       class Student
        {
            public int age { get; set; }
            public string name { get; set; }
            public string sex { get; set; }
            public Student()
            {

            }
            public Student(int age, string name,string sex)
            {
                this.age = age;
                this.name = name;
                this.sex = sex;
            }
        }

    }

对象初始化器与构造方法的异同点

相同点:都可以完成对象属性的初始化
不同点

1.构造函数具有强制性,而对象初始化器没有强制性

这个强制性怎么说,首先在用构造函数时,对每个属性赋值,必须和构造函数声明的变量属性相同。例如:
正确的调同时这样的

Student student = new Student(15, "spring","男")

我们不能写成

Student student = new Student(15, "男","spring")`

这里构造函数强制了我们变量的顺序位置 ,而对象初始化器没有强制,变量可以在任意位置进行赋值
这样是对的

Student student = new Student()
            {
                age = 25,
                name = "java",
                sex = "男"
            };

这样也是对的

Student student = new Student()
            {
                name = "java",
                age = 25,
                sex = "男"
            };

2.对象初始化器只能完成属性的初始化,而构造函数可以完成任何需要的初始化操作。

如构造方法可以在对象创建时读取文件,或者进行一些数据的判断,而在对象初始化器中只能进行赋值的操作

3.对象初始化器是在创建对象的时候使用,而构造方法是写在类里面

对象初始化器无需写方法一类的可以直接赋值,而构造方法需要自己编写

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Maybe_ch

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

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

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

打赏作者

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

抵扣说明:

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

余额充值