zoukankan      html  css  js  c++  java
  • 使用Topshelf创建Windows服务(转)

    Calculator
    
       public class Calculator : ICalculator
        {
            public Calculator()
            {
                Logger = LogManager.GetCurrentClassLogger();
            }
    
            public ILogger Logger { get; set; }
    
            public CalculationResult Add(string n1, string n2)
            {
                Logger?.Info($"received request to Add {n1} to {n2}");
               
                return Calculate(n1, n2, _add);
            }
    
            public CalculationResult Subtract(string n1, string n2)
            {
                Logger?.Info($"received request to Subtract {n2} from {n1}");
                
                return Calculate(n1, n2, _subtract);
            }
    
            public CalculationResult Multiply(string n1, string n2)
            {
                Logger?.Info($"received request to Multiply {n1} by {n2}");
                
                return Calculate(n1, n2, _multiply);
            }
    
            public CalculationResult Divide(string n1, string n2)
            {
                Logger?.Info($"received request to Divide {n1} by {n2}");
               
                return Calculate(n1, n2, _divide);
            }
    
            private static CalculationResult Calculate(string n1, string n2, Func<double, double, double> calculate)
            {
                var value1 = n1.ToDouble();
                if (!value1.HasValue)
                {
                    return GetCouldNotConvertToDoubleResult(n1);
                }
    
                var value2 = n2.ToDouble();
                if (!value2.HasValue)
                {
                    return GetCouldNotConvertToDoubleResult(n2);
                }
    
                double result = calculate(value1.Value, value2.Value);
                return new CalculationResult
                {
                    Answer = result
                };
            }
    
            private static readonly Func<double, double, double> _add = (value1, value2) => value1 + value2;
            private static readonly Func<double, double, double> _subtract = (value1, value2) => value1 - value2;
            private static readonly Func<double, double, double> _multiply = (value1, value2) => value1 * value2;
            private static readonly Func<double, double, double> _divide = (value1, value2) => value2 == 0 ? double.NaN : value1 / value2;
            
            private static CalculationResult GetCouldNotConvertToDoubleResult(string input)
            {
                return new CalculationResult
                {
                    Message = $"Could not convert '{input}' to a double"
                };
            }
        }


    https://github.com/NotMyself/CalculatorService.git

    http://www.cnblogs.com/jys509/p/4614975.html

  • 相关阅读:
    PHP实现html字符实体转汉字
    利用 secureCRT 直接上传下载文件 (sz,rz)
    CentOS安装scp命令
    以Apache模块的方式编译安装php-5.5.4
    编译安装 apache 2.4.6
    协方差Covariance的表述推导
    Java _ JDK _ Arrays, LinkedList, ArrayList, Vector 及Stack
    Java_一些特殊的关键字详(?)解
    Java_你应该知道的26种设计模式
    排序与搜索一览
  • 原文地址:https://www.cnblogs.com/shy1766IT/p/7425295.html
Copyright © 2011-2022 走看看