はじめに
こんにちは。初めてQiitaを書きます。ドッキドキです。
よろしくお願いします。
2020年に新卒で入社した会社でC#とWPFを使ってぼちぼちやっています。
前々から気になっていたXamarinを使ってみたので自分のアウトプットの場として記事を書こうと思った次第です。
作ったもの
今回はお試しということで、簡単な四則演算アプリを作りました。
数字を入力、演算子を選択して計算ボタンを押すと答えが出力されるだけのものになります。
コード
Xaml
MainPage.xaml
<?xml version="1.0" encoding="utf-8" ?><ContentPagexmlns="http://xamarin.com/schemas/2014/forms"xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"x:Class="test1.MainPage"><StackLayoutOrientation="Vertical"Margin="30,50,0,0"><StackLayoutOrientation="Horizontal"><Entryx:Name="left"WidthRequest="100"VerticalOptions="Start"/><Pickerx:Name="picker"/><Entryx:Name="right"WidthRequest="100"VerticalOptions="Start"/><LabelText="="/><Labelx:Name="answer"WidthRequest="100"/></StackLayout><Buttonx:Name="button"Text="計算"Clicked="OnButtonClicked"/></StackLayout></ContentPage>C#
MainPage.Xaml.cs
usingSystem;usingXamarin.Forms;namespacetest1{publicpartialclassMainPage:ContentPage{staticstring[]operators=new[]{"+","-","×","÷"};publicMainPage(){InitializeComponent();// pickerに演算子をセットpicker.ItemsSource=operators;// 初期値は"+"picker.SelectedIndex=0;}voidOnButtonClicked(objectsender,EventArgse){varleftNumberText=left.Text;varrightNumberText=right.Text;if(double.TryParse(leftNumberText,outvarleftNumber)&&double.TryParse(rightNumberText,outvarrightNumber)){varanswer=Calculate(leftNumber,rightNumber,picker.SelectedItem.ToString());this.answer.Text=answer.ToString();}}staticdoubleCalculate(doubleleftNumber,doublerightNumber,stringope){switch(ope){case"+":returnleftNumber+rightNumber;case"-":returnleftNumber-rightNumber;case"×":returnleftNumber*rightNumber;case"÷":if(rightNumber==0){thrownewInvalidOperationException();}else{returnleftNumber/rightNumber;}default:thrownewInvalidOperationException();}}}}ただボタンのイベントハンドラで計算してるだけですね。
WPFとのコントロールの違いに少し戸惑いました。
お試しなので、コードの内容については(例外処理とか)多めに見てくださいということで。
マシンが非力なせいか、Xamarinだから仕方ないのかエミュレーターの起動が遅くてイライラしますね。
夏のボーナスでたら新しいMac買おうかな。。。
今回はコードビハインドでやりましたが、次はViewModel作ってMVVMで四則演算したいと思います。

