一起学C#(十七)

实例初始化

通过给类添加方法成员,可以简化代码,减少编程的工作量。

类还有一种方法成员,叫做构造函数,它们和类同名,没有返回值,可以用来简化创建实例并且初始化的工作。比如:

class Employeer
{
  public string Name;  // 姓名,如果不加public,无法使用zhang.Name访问数据,以下同
  public ushort Age;  // 年龄
  public bool Sex;  // 性别

  public Employeer(string name, ushort age, bool sex)
  {
    Name = name;
    Age = age;
    Sex = sex;
  }
}

这个员工类Employeer定义了一个构造函数,有了这个构造函数,创建员工实例的工作就简单多了:

Employeer zhang = new Employeer("张能", 28, true);  // 员工实例,张能

在C#里,可以定义不同的构造函数,使用不同的初始值给实例初始化,比如可以增加:

  public Employeer(string name, ushort age, string sex)
  {
    Name = name;
    Age = age;
    if (sex.CompareTo("男") == 0)  // 如果性别是"男"
    {
      Sex = true;  // 用true表示男员工
    }
    else  // 如果不是"男"
    {
      Sex = false;  // 默认为女员工,用false表示
    }
  }

新增加的构造函数和第一个有一样的名称,只是最后一个参数的类型从bool改成了string,函数里增加了一个判断语句,用来区分Sex的值是true还是false。新建一个员工实例,可以写成这样:

Employeer employeer = new Employeer("赵风", 29, "女");  // 员工实例,赵风

下面是完整的示例:

using System;

namespace csdn.blog.aerosea
{
  class Program
  {
    static void Main(string[] args)
    {
      Employeer zhang = new Employeer("张能", 28, true);  // 员工实例,张能
      Employeer employeer = new Employeer("赵风", 29, "女");  // 员工实例,赵风

      // 变量zhang里面保存的是张能的信息
      zhang.ShowInfo();

      Console.WriteLine();  // 显示一个空行

      // 变量employeer中保存的是赵风的信息
      employeer.ShowInfo();

      Console.WriteLine("\n按任意键继续...");
      Console.ReadKey();
    }
  }

  class Employeer
  {
    public string Name;  // 姓名,如果不加public,无法使用zhang.Name访问数据,以下同
    public ushort Age;  // 年龄
    public bool Sex;  // 性别

    public Employeer(string name, ushort age, bool sex)
    {
      Name = name;
      Age = age;
      Sex = sex;
    }

    public Employeer(string name, ushort age, string sex)
    {
      Name = name;
      Age = age;
      if (sex.CompareTo("男") == 0)  // 如果性别是"男"
      {
        Sex = true;  // 用true表示男员工
      }
      else  // 如果不是"男"
      {
        Sex = false;  // 默认为女员工,用false表示
      }
    }

    // 显示员工信息
    public void ShowInfo()
    {
      Console.WriteLine("姓名:" + Name);
      Console.WriteLine("年龄:" + Age);
      Console.Write("性别:");
      if (Sex)
      {
        Console.WriteLine("男");
      }
      else
      {
        Console.WriteLine("女");
      }
    }
  }
}

一起学C#(十六)中的示例,新建一个实例是不是简单一些了呢?

当然,新建实例的两条语句也可以这样写:

Employeer zhang = new Employeer("张能", 28, "男");  // 员工实例,张能
Employeer employeer = new Employeer("赵风", 29, "女");  // 员工实例,赵风

或者:

Employeer zhang = new Employeer("张能", 28, "男");  // 员工实例,张能
Employeer employeer = new Employeer("赵风", 29, "默");  // 只要不是"男",默认是女员工

这几种写法,生成的员工实例是一样的。兵无定势,水无常形,编程也是如此

第二个构造函数也可以这样写,尽管写法不一样,结果是一样的,兵无定势嘛:

  public Employeer(string name, ushort age, string sex)
  {
    Name = name;
    Age = age;
    switch (sex)
    {
      case "男":
        Sex = true;
        break;
      default:
        Sex = false;
        break;
    }
  }

 

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流习参考,请切勿用于商业用途。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值