26.三种构建对象的方式

前言

这一篇文章属于简单的补充一下知识点,为大家介绍一下三种构建对象的方式,其实我们常用的也就是第一种,实例化对象后,分别为其赋值。但还是要求我们能够看懂这些的,只要会用即可。

三种构建对象的方式

在构建对象之前我们需要新创建一个我们的老朋友,Student 类,其内部有哪些成员呢?我们来看一下代码!但是要注意文字教程与视频教程不一致,里面已经附带上了 构造函数。

    internal class Student
    {
        public Student() { }

        /// <summary>
        ///    有参构造函数
        /// </summary>
        /// <param name="id">学生ID</param>
        /// <param name="name">学生姓名</param>
        /// <param name="age">学生年龄</param>
        public Student(int id, string name, int age)
        {
            Id = id;
            Name = name;
            Age = age;
        }
        /// <summary>
        /// id
        /// </summary>
        public int Id;
        /// <summary>
        /// 姓名
        /// </summary>
        public string Name;
        /// <summary>
        /// 年龄
        /// </summary>
        public int Age;
    }

1.实例化对象 分别赋值

            #region 1.创建对象 然后分别赋值 优点:比较灵活    缺点:类的成员过多的话  成员可能会被多次重复赋值
            Student stu1 = new Student();
            stu1.Id = 1;
            stu1.Name = "Element";

            stu1.Age = -18;
            if (stu1.Age < 0)//对键入数据进行判断
            {
                stu1.Age = 0;
            }
            #endregion

在经历前面那么多的练习,相信你对这一段代码并不会干到陌生,因为这段代码的作用非常简单,我们首先根据Student 类创建出了,一个 stu1 对象 ,然后使用 成员访问符(.) 访问对象的成员,然后分别赋值,只不过在我们为 stu1.Age 成员赋值后,我们对该成员的合理性进行了一个 if 判断 ,所以这是它灵活的提现之处。

2.对象初始化器

            #region 对象初始化器  优点:成员不会重复  缺点:不够灵活
            Student stu2 = new Student()
            {
                Age = 12,
                Id = 2,
                Name = "Test",
            };
            #endregion

可以看到这种方式比较简便,并且为成员赋值不会重复性的出现(需要配合VS Ide),但无法在语句块内对值进行判断。

3.构造函数赋值

            #region 使用构造函数 优点:简介方便  缺点:参数过多容易搞混
            Student stu3 = new Student();
            #endregion

假若 你要使用构造函数的方式为其进行传值,那么你需要在 Student 类中,先自行写一个符合你意向的构造函数,然后明确使用哪些 形参,在调用之时,使用 实参进行传入。

        /// <summary>
        ///    有参构造函数
        /// </summary>
        /// <param name="id">学生ID</param>
        /// <param name="name">学生姓名</param>
        /// <param name="age">学生年龄</param>
        public Student(int id, string name, int age)
        {
            Id = id;
            Name = name;
            Age = age;
        }
© 版权声明
THE END
点赞490 分享
和此文作者聊聊 抢沙发

    暂无评论内容