前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >c#对象初始化器

c#对象初始化器

作者头像
MaybeHC
发布2024-04-23 18:20:34
590
发布2024-04-23 18:20:34
举报
文章被收录于专栏:技术之路技术之路

c#对象初始化器

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

代码语言:javascript
复制
  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;
            }
        }

    }

而使用对象初始化器

代码语言:javascript
复制
  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.构造函数具有强制性,而对象初始化器没有强制性

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

代码语言:javascript
复制
Student student = new Student(15, "spring","男")

我们不能写成

代码语言:javascript
复制
Student student = new Student(15, "男","spring")`

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

代码语言:javascript
复制
Student student = new Student()
            {
                age = 25,
                name = "java",
                sex = "男"
            };

这样也是对的

代码语言:javascript
复制
Student student = new Student()
            {
                name = "java",
                age = 25,
                sex = "男"
            };

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

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

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

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-04-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • c#对象初始化器
  • 对象初始化器与构造方法的异同点
    • 1.构造函数具有强制性,而对象初始化器没有强制性
      • 2.对象初始化器只能完成属性的初始化,而构造函数可以完成任何需要的初始化操作。
        • 3.对象初始化器是在创建对象的时候使用,而构造方法是写在类里面
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档