public class Operation
{
private double numA = 0;
private double numB = 0;
public double NumA
{
get { return numA; }
set { numA = value; }
}
public double NumB
{
get { return numB; }
set { numB = value; }
}
public virtual double GetResult()
{
double rel = 0;
return rel;
}
}
class OpeAdd:Operation
{
public override double GetResult()
{
double rel = 0;
rel = NumA + NumB;
return rel;
}
}
class OpeDiv : Operation
{
public override double GetResult()
{
double rel = 0;
if (NumB == 0)
throw new Exception("not to be 0");
rel = NumA / NumB;
return rel;
}
}
class OpeFactory
{
public static Operation createOpe(String str) //根据参数 生产相应的类
{
Operation ope = null;
switch (str)
{
case "+":
ope = new OpeAdd();
break;
case "/":
ope = new OpeDiv();
break;
}
return ope;
}
}
class Program
{
static void Main(string[] args)
{
Console.WriteLine("hello world");
Operation ope;
ope =OpeFactory.createOpe("/");
ope.NumA = 1;
ope.NumB = 0;
double r = ope.GetResult();
Console.WriteLine(r);
}
}
{
private double numA = 0;
private double numB = 0;
public double NumA
{
get { return numA; }
set { numA = value; }
}
public double NumB
{
get { return numB; }
set { numB = value; }
}
public virtual double GetResult()
{
double rel = 0;
return rel;
}
}
class OpeAdd:Operation
{
public override double GetResult()
{
double rel = 0;
rel = NumA + NumB;
return rel;
}
}
class OpeDiv : Operation
{
public override double GetResult()
{
double rel = 0;
if (NumB == 0)
throw new Exception("not to be 0");
rel = NumA / NumB;
return rel;
}
}
class OpeFactory
{
public static Operation createOpe(String str) //根据参数 生产相应的类
{
Operation ope = null;
switch (str)
{
case "+":
ope = new OpeAdd();
break;
case "/":
ope = new OpeDiv();
break;
}
return ope;
}
}
class Program
{
static void Main(string[] args)
{
Console.WriteLine("hello world");
Operation ope;
ope =OpeFactory.createOpe("/");
ope.NumA = 1;
ope.NumB = 0;
double r = ope.GetResult();
Console.WriteLine(r);
}
}