C#基于简单工厂模式实现的计算器功能示例

作者:无盐海 时间:2023-06-19 12:40:10 

本文实例讲述了C#基于简单工厂模式实现的计算器功能。分享给大家供大家参考,具体如下:

子类拥有父类除私有之外的所有属性字段和方法


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 工厂方法实现计算器
{
 /// <summary>
 /// 计算器类(抽象类,由子类重写)
 /// </summary>
 public abstract class Calculator
 {
   public double Number1 { get; set; }
   public double Number2 { get; set; }
   public Calculator() { }
   public Calculator(double a, double b)
   {
     this.Number1=a;
     this.Number2=b;
   }
   /// <summary>
   /// 计算
   /// </summary>
   /// <returns></returns>
   public abstract double jsuan();
 }
 /// <summary>
 /// 加法类
 /// </summary>
 public class jiafaDll:Calculator //子类拥有父类除私有之外的所有属性字段和方法
 {
   public jiafaDll() { }
   public jiafaDll(double a, double b)
     : base(a, b)  //调用父类带两个参数的构造函数,来初始化Number1 和Number2 (注意:因为jianfaDll类继承了Calculator,所以jianfaDll类是有Number1,和Number2两个属性的)
   { }
   /// <summary>
   /// 重写父类的jsuan方法
   /// </summary>
   /// <returns></returns>
   public override double jsuan()
   {
     return Number1 + Number2;
   }
 }
 /// <summary>
 /// 减法类
 /// </summary>
 public class jianfaDll : Calculator
 {
   public jianfaDll()
   { }
   public jianfaDll(double a, double b)
     : base(a, b)
   { }
   public override double jsuan()
   {
     return Number1 - Number2;
   }
 }
 class Program
 {
   static void Main(string[] args)
   {
     Console.WriteLine("请输入第一个数");
     double number1 = Convert.ToDouble(Console.ReadLine());
     Console.WriteLine("请输入一个操作符");
     string caozuofu = Console.ReadLine();
     Console.WriteLine("请输入第二个数");
     double number2 = Convert.ToDouble(Console.ReadLine());
     Calculator c=null;
     switch (caozuofu)
     {
       case "+":
         c = new jiafaDll(number1, number2);
         break;
       case "-":
         c = new jianfaDll(number1, number2);
         break;
     }
     double i= c.jsuan();
     Console.WriteLine(i);
     Console.ReadKey();
   }
 }
}

PS:这里再为大家推荐几款计算工具供大家进一步参考借鉴:

在线一元函数(方程)求解计算工具:
http://tools.jb51.net/jisuanqi/equ_jisuanqi

科学计算器在线使用_高级计算器在线计算:
http://tools.jb51.net/jisuanqi/jsqkexue

在线计算器_标准计算器:
http://tools.jb51.net/jisuanqi/jsq

希望本文所述对大家C#程序设计有所帮助。

来源:http://blog.csdn.net/fanbin168/article/details/45788277

标签:C#,工厂模式,计算器
0
投稿

猜你喜欢

  • Java线程的调度与优先级详解

    2023-04-30 13:48:13
  • MyBatis框架底层的执行原理源码解析

    2023-10-28 12:19:27
  • Spring boot 连接多数据源过程详解

    2023-11-28 12:09:51
  • Ajax实现省市区三级联动

    2023-01-14 05:09:58
  • 在IDEA里gradle配置和使用的方法步骤

    2023-11-23 16:07:58
  • springboot日期转换器实现实例解析

    2023-01-31 13:16:45
  • 超详细的Java 问题排查工具单

    2023-02-10 06:02:17
  • java HashMap和HashTable的区别详解

    2023-08-10 18:41:56
  • Java中ArrayList与顺序表的定义与实现方法

    2022-06-08 03:27:12
  • Spring Boot 2.5.0 重新设计的spring.sql.init 配置有啥用

    2021-12-04 00:04:43
  • java生成jar包的方法

    2022-06-09 12:22:03
  • 解析spring加载bean流程的方法

    2023-11-29 13:50:32
  • springboot跨域如何设置SameSite的实现

    2022-08-03 21:27:07
  • springMVC如何将controller中Model数据传递到jsp页面

    2023-05-25 23:46:58
  • 在WPF中实现平滑滚动的方法详解

    2021-06-17 06:34:16
  • 解决MyBatis @param注解参数类型错误异常的问题

    2023-12-01 06:41:45
  • Java 中Flyway的使用详解

    2022-04-11 03:38:54
  • 微信公众平台开发教程(三) 基础框架搭建

    2022-08-12 00:33:50
  • C#数值转换-显式数值转换表(参考)

    2023-05-26 22:26:15
  • Java和C++通过new创建的对象有何区别?

    2022-02-07 10:06:10
  • asp之家 软件编程 m.aspxhome.com