class Program ... { static void Main(string[] args) ...{ Console.Write("请输入数字A:"); string A = Console.ReadLine(); Console.Write("请选择运算符号(+、-、*、/):"); string B = Console.ReadLine(); Console.Write("请输入数字B:"); string C = Console.ReadLine(); string D = ""; OperationFactory OperF = new OperationFactoryAdd(); Operation oper = OperF.createOpertion(); oper.NumberA = int.Parse(A); oper.NumberB = int.Parse(C); D = oper.GetResult().ToString(); Console.WriteLine("结果是:" + D); } } public class Operation ... { private double _numberA = 0; private double _numberB = 0; /**//// <summary> /// 数字A /// </summary> public double NumberA ...{ get ...{ return _numberA; } set ...{ _numberA = value; } } /**//// <summary> /// 数字B /// </summary> public double NumberB ...{ get ...{ return _numberB; } set ...{ _numberB = value; } } /**//// <summary> /// 得到运算结果 /// </summary> /// <returns></returns> public virtual double GetResult() ...{ double result = 0; return result; } } /**/ /// <summary> /// 加法类 /// </summary> public class OperationAdd : Operation ... { public override double GetResult() ...{ return this.NumberA + NumberB; } } /**/ /// <summary> /// 减法类 /// </summary> public class OperationSub : Operation ... { public override double GetResult() ...{ return NumberA - NumberB; } } /**/ /// <summary> /// 乘法类 /// </summary> public class OperationNul : Operation ... { public override double GetResult() ...{ return NumberA * NumberB; //return base.GetResult(); } } /**/ /// <summary> /// 除法类 /// </summary> public class OperationDiv : Operation ... { public override double GetResult() ...{ if (NumberB == 0) ...{ return 0; } return NumberA / NumberB; //return base.GetResult(); } } public interface OperationFactory ... { Operation createOpertion(); } public class OperationFactoryAdd : OperationFactory ... { public Operation createOpertion() ...{ return new OperationAdd(); } } public class OperationFactorySub : OperationFactory ... { public Operation createOpertion() ...{ return new OperationSub(); } } public class OperationFactoryNul : OperationFactory ... { public Operation createOpertion() ...{ return new OperationDiv(); } }