Exemplo n.º 1
0
        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();
        }
Exemplo n.º 2
0
        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
        }