public static int Main(string[] args)
        {
            /*
             * // If the AMPL installation directory is not in the system search path:
             * ampl.Environment env = new ampl.Environment(
             * "full path to the AMPL installation directory");
             * // Create an AMPL instance
             * using (AMPL a = new AMPL(env)) {}
             */

            // Create an AMPL instance
            using (AMPL ampl = new AMPL())
            {
                // Get the value of the option preSolve and print
                int presolve = ampl.GetIntOption("presolve").Value;
                Console.Write("AMPL preSolve is {0}\n", presolve);

                // set the value to false (maps to 0)
                ampl.SetOption("presolve", false);

                // Get the value of the option preSolve and print
                presolve = ampl.GetIntOption("presolve").Value;
                Console.Write("AMPL preSolve is now {0}\n", presolve);

                // Check whether an option with a specified name exists
                string value = ampl.GetOption("Solver");
                if (value != null)
                {
                    Console.WriteLine("Option Solver exists and has value: " + value);
                }

                // Check again, this time failing
                value = ampl.GetOption("s_o_l_v_e_r");
                if (value == null)
                {
                    Console.WriteLine("Option s_o_l_v_e_r does not exists!");
                }

                // Using nullables (for bool, int and double options)
                double?dblvalue = ampl.GetDblOption("does_not_exist");
                if (dblvalue.HasValue)
                {
                    Console.WriteLine("Surprisingly, \"does_not_exist\" has a value!");
                }
                else
                {
                    Console.WriteLine("\"does_not_exist\" does not have a value!");
                }

                // Error if accessing value
                try
                {
                    Console.WriteLine(dblvalue.Value);
                }
                catch (InvalidOperationException ex)
                {
                    Console.WriteLine("Error while accessing not existing value:");
                    Console.WriteLine(ex.Message);
                }
            }
            return(0);
        }