一野舶、首先創(chuàng)建PlusOperation類庫,其中包含抽象父類Operation巾遭,以及加肉康、減闯估、乘、除四個子類吼和!
(1)父類Operation
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace NameSpaceOperation
{
public abstract class Operation
{
public int NumberOne { get; set; }
public int NubmerTwo { get; set; }
public Operation(int a,int b)
{
this.NumberOne = a;
this.NubmerTwo = b;
}
public abstract int GetResult();
}
}
(2)加法子類Add
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace NameSpaceOperation
{
public class Add : Operation
{
public Add(int a, int b) : base(a, b)
{
}
public override int GetResult()
{
return this.NumberOne + this.NubmerTwo;
}
}
}
(3)減法子類Sub
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace NameSpaceOperation
{
public class Sub : Operation
{
public Sub(int a, int b) : base(a, b)
{
}
public override int GetResult()
{
return this.NumberOne - this.NubmerTwo;
}
}
}
(4)乘法子類Mul
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace NameSpaceOperation
{
public class Mul : Operation
{
public Mul(int a, int b) : base(a, b)
{
}
public override int GetResult()
{
return this.NumberOne * this.NubmerTwo;
}
}
}
(5)除法子類Div
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace NameSpaceOperation
{
public class Div : Operation
{
public Div(int a, int b) : base(a, b)
{
}
public override int GetResult()
{
return this.NumberOne / this.NubmerTwo;
}
}
}
二涨薪、創(chuàng)建項目SimpleFactoryPatternCalculator,引入PlusOperation類庫炫乓,添加Operation命名空間
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using NameSpaceOperation;
namespace SimpleFactoryPatternCalculator
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("請輸入你的第一個數(shù)字");
int a = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("請輸入你的第二個數(shù)字");
int b = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("請輸入你的運算符");
string strOper = Console.ReadLine();
Operation oper = GetOperation(strOper,a, b);
if (oper!=null)
{
int result = oper.GetResult();
Console.WriteLine("{0}{1}{2}={3}",a,strOper,b,result);
}
else
{
Console.WriteLine("沒有你需要的運算符");
}
}
static Operation GetOperation(string oper,int a,int b)
{
Operation operation = null;
switch (oper)
{
case "+":
operation = new Add(a, b);
break;
case "-":
operation = new Sub(a, b);
break;
case "*":
operation = new Mul(a, b);
break;
case "/":
operation = new Div(a, b);
break;
}
return operation;
}
}
}