一起学C#(十七)

本文介绍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;
    }
  }

 

内容概要:本文系统介绍了算术优化算法(AOA)的基本原理、核心思想及Python实现方法,并通过图像分割的实际案例展示了其应用价值。AOA是一种基于种群的元启发式算法,其核心思想来源于四则运算,利用乘除运算进行全局勘探,加减运算进行局部开发,通过数优化器加速函数(MOA)和数优化概率(MOP)动态控制搜索过程,在全局探索与局部开发之间实现平衡。文章详细解析了算法的初始化、勘探与开发阶段的更新策略,并提供了完整的Python代码实现,结合Rastrigin函数进行测试验证。进一步地,以Flask框架搭建前后端分离系统,将AOA应用于图像分割任务,展示了其在实际工程中的可行性与高效性。最后,通过收敛速度、寻优精度等指标评估算法性能,并提出自适应参数调整、模型优化和并行计算等改进策略。; 适合人群:具备一定Python编程基础和优化算法基础知识的高校生、科研人员及工程技术人员,尤其适合从事人工智能、图像处理、智能优化等领域的从业者;; 使用场景及目标:①理解元启发式算法的设计思想与实现机制;②掌握AOA在函数优化、图像分割等实际问题中的建模与求解方法;③习如何将优化算法集成到Web系统中实现工程化应用;④为算法性能评估与改进提供实践参考; 阅读建议:建议读者结合代码逐行调试,深入理解算法流程中MOA与MOP的作用机制,尝试在不同测试函数上运行算法以观察性能差异,并可进一步扩展图像分割模块,引入更复杂的预处理或后处理技术以提升分割效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值