Beispiel #1
0
        /// <summary>
        /// 新增雙元運算子
        /// </summary>
        /// <param name="binaryName">雙元運算子</param>
        /// <returns>雙元運算子響應</returns>
        public FrameUpdate AddBinary(char binaryName)
        {
            Feature CurrentFeature = Feature.BINARY;

            return(ThrowOrderException <FrameUpdate>(CurrentFeature, () =>
            {
                FrameUpdate frameUpdate;

                if (PreviousFeature == Feature.Null)
                {
                    NumberMachine.AddNumber('0');
                    frameUpdate = NumberMachine.AddBinary(binaryName);
                    //要補0
                    frameUpdate.UpdateString = $"0{frameUpdate.UpdateString}";
                }
                else if (PreviousFeature == Feature.BINARY)
                {
                    frameUpdate = NumberMachine.ModifyBinary(binaryName);
                }
                else
                {
                    frameUpdate = NumberMachine.AddBinary(binaryName);
                }

                //執行成功時記錄下這次的Cast
                PreviousFeature = Feature.BINARY;
                return frameUpdate;
            }));
        }
Beispiel #2
0
        /// <summary>
        /// 新增雙元運算子
        /// </summary>
        /// <param name="binaryName">雙元運算子</param>
        /// <returns>雙元運算子響應</returns>
        public BinaryUpdate AddBinary(char binaryName)
        {
            Feature CurrentCast = Feature.BINARY;

            return(CheckOrder <BinaryUpdate>(CurrentCast, () =>
            {
                BinaryUpdate successResponse;

                if (PreviousCast == Feature.Null)
                {
                    NumberMachine.AddNumber('0');
                    successResponse = NumberMachine.AddBinary(binaryName);
                    //要補0
                    successResponse.UpdateString = $"0{successResponse.UpdateString}";
                }
                else if (PreviousCast == Feature.BINARY)
                {
                    successResponse = NumberMachine.ModifyBinary(binaryName);
                }
                else
                {
                    successResponse = NumberMachine.AddBinary(binaryName);
                }

                //執行成功時記錄下這次的Cast
                PreviousCast = Feature.BINARY;
                return successResponse;
            }));
        }