2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Hello Xamarin!

Posted at

はじめに

こんにちは。初めてQiitaを書きます。ドッキドキです。 よろしくお願いします。

2020年に新卒で入社した会社でC#とWPFを使ってぼちぼちやっています。

前々から気になっていたXamarinを使ってみたので自分のアウトプットの場として記事を書こうと思った次第です。

作ったもの

今回はお試しということで、簡単な四則演算アプリを作りました。

スクリーンショット 2021-01-17 19.54.11.png

スクリーンショット 2021-01-17 23.10.42.png

数字を入力、演算子を選択して計算ボタンを押すと答えが出力されるだけのものになります。

コード

Xaml
MainPage.xaml
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="test1.MainPage">

    <StackLayout Orientation="Vertical" Margin="30,50,0,0">
        <StackLayout Orientation="Horizontal">
            <Entry x:Name="left" WidthRequest="100" VerticalOptions="Start"/>
            <Picker x:Name="picker"/>
            <Entry x:Name="right" WidthRequest="100" VerticalOptions="Start" />
            <Label Text="="/>
            <Label x:Name="answer" WidthRequest="100" />
        </StackLayout>
        <Button x:Name="button" Text="計算" Clicked="OnButtonClicked"/>
    </StackLayout> 

</ContentPage>

C#

MainPage.Xaml.cs

using System;
using Xamarin.Forms;

namespace test1
{
    public partial class MainPage : ContentPage
    {
        static string[] operators = new[] { "+", "-", "×", "÷" };

        public MainPage()
        {
            InitializeComponent();
            // pickerに演算子をセット
            picker.ItemsSource = operators;
            // 初期値は"+"
            picker.SelectedIndex = 0;
        }

        void OnButtonClicked(object sender, EventArgs e)
        {
            var leftNumberText = left.Text;
            var rightNumberText = right.Text;
            if (double.TryParse(leftNumberText, out var leftNumber) &&
                double.TryParse(rightNumberText, out var rightNumber)){
                var answer = Calculate(leftNumber, rightNumber, picker.SelectedItem.ToString());
                this.answer.Text = answer.ToString();
            }
        }

        static double Calculate(double leftNumber, double rightNumber, string ope)
        {
            switch (ope)
            {
                case "+":
                    return leftNumber + rightNumber;
                case "-":
                    return leftNumber - rightNumber;
                case "×":
                    return leftNumber * rightNumber;
                case "÷":
                    if (rightNumber == 0) {
                        throw new InvalidOperationException();
                    } else {
                        return leftNumber / rightNumber;
                    }

                default:
                    throw new InvalidOperationException();
            }
        }
    }
}

ただボタンのイベントハンドラで計算してるだけですね。
WPFとのコントロールの違いに少し戸惑いました。

お試しなので、コードの内容については(例外処理とか)多めに見てくださいということで。

マシンが非力なせいか、Xamarinだから仕方ないのかエミュレーターの起動が遅くてイライラしますね。

夏のボーナスでたら新しいMac買おうかな。。。

今回はコードビハインドでやりましたが、次はViewModel作ってMVVMで四則演算したいと思います。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?