開発環境
- OS: Windows 10 Pro
- IDE(統合開発環境): Visual Studio Community 2017
Head First C# ―頭とからだで覚えるC#の基本 (Andrew Stellman (著)、Jennifer Greene (著)、佐藤 嘉一 (監修, 監修)、木下 哲也 (翻訳)、オライリージャパン)の3章(オブジェクト指向になる! - わかりやすいコードにする)、自分で考えてみよう(p. 95)を取り組んでみる。
コード
MainPage.xaml
<Page x:Class="App.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="using:App" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> <Grid> <TextBox x:Name="textBox1" HorizontalAlignment="Left" Margin="750,320,0,0" Text="TextBox" VerticalAlignment="Top"/> <TextBox x:Name="textBox2" HorizontalAlignment="Left" Margin="750,500,0,0" Text="TextBox" VerticalAlignment="Top"/> <TextBox x:Name="textBox3" HorizontalAlignment="Left" Margin="750,694,0,0" Text="TextBox" VerticalAlignment="Top"/> </Grid> </Page>
MainPage.xaml.cs
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Runtime.InteropServices.WindowsRuntime; using Windows.Foundation; using Windows.Foundation.Collections; using Windows.UI.Xaml; using Windows.UI.Xaml.Controls; using Windows.UI.Xaml.Controls.Primitives; using Windows.UI.Xaml.Data; using Windows.UI.Xaml.Input; using Windows.UI.Xaml.Media; using Windows.UI.Xaml.Navigation; using Windows.UI.Popups; // 空白ページの項目テンプレートについては、https://go.microsoft.com/fwlink/?LinkId=402352&clcid=0x411 を参照してください namespace App { /// <summary> /// それ自体で使用できる空白ページまたはフレーム内に移動できる空白ページ。 /// </summary> public sealed partial class MainPage : Page { public MainPage() { this.InitializeComponent(); DoSomethingAsync(); } public async void DoSomethingAsync() { string destinatino = textBox1.Text; string route2StreetToAvoid = textBox2.Text; string route3StreetToInclude = textBox3.Text; Navigator navigator1 = new Navigator(); navigator1.SetDestination(destinatino); int distance1 = navigator1.TotalDistance(); Navigator navigator2 = new Navigator(); navigator2.SetDestination("目的地2"); navigator2.ModifyRouteToAvoid("avoid2"); int distance2 = navigator2.TotalDistance(); Navigator navigator3 = new Navigator(); navigator2.SetDestination("目的地3"); navigator2.ModifyRouteToAvoid("avoid3"); int distance3 = navigator2.TotalDistance(); int shortestDistance = Math.Min(distance1, Math.Min(distance2, distance3)); MessageDialog md = new MessageDialog(shortestDistance.ToString()); await md.ShowAsync(); } } public class Navigator { private string destinationName; private List<string> avoids = new List<string>(); public void SetDestination(string destinationName) { this.destinationName = destinationName; } public void ModifyRouteToAvoid(string streetName) { avoids.Add(streetName); } public string GetRoute() { return "destination: " + destinationName + " avoids: " + avoids; } public int TotalDistance() { Random random = new Random(); return random.Next(); } } }
0 コメント:
コメントを投稿