コード例 #1
0
        private void ButtonNumber_Click(object sender, EventArgs e)
        {
            var b = (Button)sender;

            switch (b.Name)
            {
            case "button0":
                numberType = ButtonNumberType.Zero;
                break;

            case "button1":
                numberType = ButtonNumberType.One;
                break;

            case "button2":
                numberType = ButtonNumberType.Two;
                break;

            case "button3":
                numberType = ButtonNumberType.Three;
                break;

            case "button4":
                numberType = ButtonNumberType.Four;
                break;

            case "button5":
                numberType = ButtonNumberType.Five;
                break;

            case "button6":
                numberType = ButtonNumberType.Six;
                break;

            case "button7":
                numberType = ButtonNumberType.Seven;
                break;

            case "button8":
                numberType = ButtonNumberType.Eight;
                break;

            case "button9":
                numberType = ButtonNumberType.Nine;
                break;

            case "buttonDot":
                numberType = ButtonNumberType.Dot;
                break;

            default:
                Debug.Assert(false, "Fiks det");
                break;
            }

            NumberPressed(numberType);
        }
コード例 #2
0
        private void NumberPressed(ButtonNumberType numberType)
        {
            var numberString = "0";

            switch (numberType)
            {
            case ButtonNumberType.Zero:
                numberString = "0";
                break;

            case ButtonNumberType.One:
                numberString = "1";
                break;

            case ButtonNumberType.Two:
                numberString = "2";
                break;

            case ButtonNumberType.Three:
                numberString = "3";
                break;

            case ButtonNumberType.Four:
                numberString = "4";
                break;

            case ButtonNumberType.Five:
                numberString = "5";
                break;

            case ButtonNumberType.Six:
                numberString = "6";
                break;

            case ButtonNumberType.Seven:
                numberString = "7";
                break;

            case ButtonNumberType.Eight:
                numberString = "8";
                break;

            case ButtonNumberType.Nine:
                numberString = "9";
                break;

            case ButtonNumberType.Dot:
                if (numberClass.StringValue == "0")
                {
                    numberClass.StringValue += "0.";
                }
                if (numberClass.StringValue.Contains("."))
                {
                    return;
                }
                else
                {
                    numberString = ".";
                }
                break;

            default:
                Debug.Assert(false, "Fiks det");
                break;
            }

            switch (operatorState)
            {
            case OperatorState.None:
                if (numberClass.StringValue == "0" || Math.Abs(numberClass.NumberValue) < 0)
                {
                    return;
                }
                numberClass.StringValue += numberString;
                break;

            case OperatorState.Single:
                numberClass.StringValue = numberString;
                break;

            case OperatorState.Double:
                numberClass.PreviousValue = numberClass.NumberValue;
                numberClass.StringValue   = numberString;
                break;

            default:
                Debug.Assert(false, "Fiks det");
                break;
            }

            operatorState = OperatorState.None;
            UpdateDisplay();
        }
コード例 #3
0
        private void NumberPressed(ButtonNumberType numberType)
        {
            string numberString = "";

            switch (numberType)
            {
            case ButtonNumberType.Zero:
                numberString = "0";
                break;

            case ButtonNumberType.One:
                numberString = "1";
                break;

            case ButtonNumberType.Two:
                numberString = "2";
                break;

            case ButtonNumberType.Three:
                numberString = "3";
                break;

            case ButtonNumberType.Four:
                numberString = "4";
                break;

            case ButtonNumberType.Five:
                numberString = "5";
                break;

            case ButtonNumberType.Six:
                numberString = "6";
                break;

            case ButtonNumberType.Seven:
                numberString = "7";
                break;

            case ButtonNumberType.Eight:
                numberString = "8";
                break;

            case ButtonNumberType.Nine:
                numberString = "9";
                break;

            case ButtonNumberType.Dot:
                if (displayNumber.StringValue.Contains(","))
                {
                    return;
                }
                numberString = ",";
                break;

            default:
                Debug.Assert(false, "Fiks det");
                break;
            }
            if (operatorState == OperatorState.Double)
            {
                previousNumber            = displayNumber.NumberValue;
                displayNumber.StringValue = numberString;
            }
            else if (operatorState == OperatorState.Single)
            {
                displayNumber.StringValue = numberString;
            }
            else
            {
                if (displayNumber.StringValue == "0" && numberString == "0")
                {
                    return;
                }
                displayNumber.StringValue += numberString;
            }
            operatorState = OperatorState.None;
            UpdateDisplay();
        }