double infinity

CSharp · Console

/Program.cs

// @nuget: CommandLineParser -Version 2.8.0

using System;

using System.Collections.Generic;
using CommandLine;
using System.Globalization;
using System.Text;

public class Program
{
    public static void Main()
    {
        Console.OutputEncoding = Encoding.Unicode;       
        Console.WriteLine("CurrentCulture is '{0}'", CultureInfo.CurrentCulture.Name);
       //Infinity
        string arg = "-e ∞ -m 50 -p -w 0.25";
		
		var args= arg.Split();
      //  var args = "-m 50 -p -w 0.25".Split(); //need not to pass epsilon when has default value infinity       ;
        var parser = new Parser(with =>
        {
            with.HelpWriter = Console.Out;
            //setup culture for parser, e.g. en-US
            with.ParsingCulture = new CultureInfo("en-US"); //modify to use your cultureinfo
        });
        var result = parser.ParseArguments<Options>(args);

        result.WithParsed(options =>
        {
            Console.WriteLine("Parser Success");
            Console.WriteLine("Epsilon isinfinity= {0}", Double.IsInfinity(options.Epsilon));
            Console.WriteLine("Epsilon= {0}", options.Epsilon);
          
        }

        ).WithNotParsed(errs => Console.WriteLine("Failed with errors:\n{0}",
            String.Join("\n", errs)));
    }


    class Options
    {
        [Option('e', "epsilon",Default=Double.PositiveInfinity)]
        public double Epsilon { get; set; }
        [Option('m')]
        public int M { get; set; }
        [Option('p')]
        public bool P { get; set; }
        [Option('w')]
        public double W { get; set; }        
    }
}
;