開発環境
- OS: Windows 10 Pro
- IDE(統合開発環境): Visual Studio Community 2017
Head First C# ―頭とからだで覚えるC#の基本 (Andrew Stellman (著)、Jennifer Greene (著)、佐藤 嘉一 (監修, 監修)、木下 哲也 (翻訳)、オライリージャパン)の3章(オブジェクト指向になる! - わかりやすいコードにする)、自分で考えてみよう(p. 95)を取り組んでみる。
コード
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"
xmlns:local="clr-namespace:App1"
x:Class="App1.MainPage">
<StackLayout>
<!-- Place new controls here -->
<!--
<Label Text="Welcome to Xamarin.Forms!"
HorizontalOptions="Center"
VerticalOptions="CenterAndExpand" />
-->
<Editor x:Name="editor1"
Text="destination1" />
<Editor x:Name="editor2"
Text="route1" />
<Editor x:Name="editor3"
Text="route2" />
<Button x:Name="button1"
Text="button1"
Clicked="button1_Clicked"/>
</StackLayout>
</ContentPage>
MainPage.xaml.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
namespace App1
{
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
}
private void button1_Clicked(object sender, EventArgs e)
{
string destination = editor1.Text;
string route2StreetToAvoid = editor2.Text;
string route3StreetToInclude = editor3.Text;
Navigator navigator1 = new Navigator();
navigator1.SetDestination(destination);
int distance1 = navigator1.TotalDistance();
Navigator navigator2 = new Navigator();
navigator2.SetDestination(destination);
navigator2.ModifyRouteToAvoid(route2StreetToAvoid);
int distance2 = navigator2.TotalDistance();
Navigator navigator3 = new Navigator();
navigator3.SetDestination(destination);
navigator3.ModifyRouteToAvoid(route3StreetToInclude);
int distance3 = navigator3.TotalDistance();
int shortestDistance =
Math.Min(distance1, Math.Min(distance2, distance3));
DisplayAlert("", shortestDistance.ToString(), "cancel");
}
}
public class Navigator
{
private string destination;
public void SetDestination(string destination)
{
this.destination = destination;
}
public void ModifyRouteToAvoid(string route) { }
public void ModifyRouteToInclude(string route) { }
public void GetRoute() { }
public void GetTimeToDestination() { }
public int TotalDistance()
{
return 0;
}
}
}
0 コメント:
コメントを投稿