static void Main(string[] args) { int var1, var2; var result = 0.0; string op; Console.WriteLine("$-:欢迎使用四则运算1.0.0版本!"); Console.WriteLine("$-:请输入运算式:"); Console.Write("$-: var1: "); var1 = Int32.Parse(Console.ReadLine()); Console.Write("$-: op: "); op = Console.ReadLine(); Console.Write("$-: var2 "); var2 = Int32.Parse(Console.ReadLine()); //利用配置文件管理工具配置文件 Configuration conf = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); string factoryname = conf.AppSettings.Settings[op].Value; //用反射机制 //当前程序集 //Type type = Type.GetType(factoryname); //type.Assembly.CreateInstance(factoryname); Assembly ass = Assembly.Load("No_rz43_CalcualtorLib"); ICalculatorFactory ft = (ICalculatorFactory)ass.CreateInstance(factoryname); ICalculator cal = ft.GetCalcualtor(); result = cal.Calcualtor(var1, var2); Console.WriteLine("$-:result: {0}{1}{2}={3}", var1, op, var2, result); Console.ReadKey(); }
private void btnOps_Click(object sender, EventArgs e) { dataX = double.Parse(tb_in.Text); tb_out.Text += ((Button)sender).Text; tb_in.Text = "0"; #region 使用配置文件和反射机制,按照所按操作符获取运算 cal //利用配置文件管理工具配置文件 Configuration conf = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); string factoryname = conf.AppSettings.Settings[((Button)sender).Text].Value; op = ((Button)sender).Text; //用反射机制 //当前程序集 //Type type = Type.GetType(factoryname); //type.Assembly.CreateInstance(factoryname); Assembly ass = Assembly.Load("No_rz43_CalcualtorLib"); ICalculatorFactory ft = (ICalculatorFactory)ass.CreateInstance(factoryname); cal = ft.GetCalcualtor(); #endregion 使用配置文件和反射机制,按照所按操作符获取运算 cal }