2018年7月8日日曜日

開発環境

Head First C# ―頭とからだで覚えるC#の基本 (Andrew Stellman (著)、Jennifer Greene (著)、佐藤 嘉一 (監修, 監修)、木下 哲也 (翻訳)、オライリージャパン)の5章(継承 - オブジェクトの系図)、自分で考えてみよう(p. 193)を取り組んでみる。

コード

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" />
        -->
    </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
    {
        public MainPage()
        {
            InitializeComponent();

            FireFintingMission();
            BLT bLT = OrderMyBLT();
            DisplayAlert("", bLT.ToString(), "cancel");
        }

        public void FireFintingMission()
        {
            FirePlane firePlane = new FirePlane();

            firePlane.TakeOff();
            firePlane.AirSpeed = 192.5;
            firePlane.FillBucket();
        }

        public BLT OrderMyBLT()
        {
            BLT sandwich = new BLT();
            sandwich.Toasted = true;
            sandwich.SlicesOfBread = 3;
            sandwich.AddSideOfFries();

            return sandwich;
        }
    }
    // 機能する文のみのコードに修正
    public class Aircraft:ContentPage
    {
        public double AirSpeed;
        public double Altitude;
        public void TakeOff()
        {
            DisplayAlert("Aircraft", "TakeOff", "cancel");
        }
        public void Land()
        {
            DisplayAlert("Aircraft", "Land", "cancel");
        }
    }

    public class FirePlane: Aircraft
    {
        public double BucketCapacity;
        public void FillBucket()
        {
            DisplayAlert("FirePlane", "FillBucket", "cancel");
        }
    }

    public class Sandwich
    {
        public bool Toasted;
        public int SlicesOfBread;

        public int CountCalories()
        {
            return 0;
        }
    }

    public class BLT: Sandwich
    {
        public int SlicesOfBacon;
        public int AmountOfLettuce;
        public int AddSideOfFries()
        {
            return 0;
        }
    }
}

App.xaml

<?xml version="1.0" encoding="utf-8" ?>
<Application xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="App1.App">
    <Application.Resources>
        
    </Application.Resources>
</Application>

App.xaml.cs

using System;
using Xamarin.Forms;
using Xamarin.Forms.Xaml;

[assembly: XamlCompilation (XamlCompilationOptions.Compile)]
namespace App1
{
 public partial class App : Application
 {
  public App ()
  {
   InitializeComponent();

            // MainPage = new MainPage();
            MainPage = new NavigationPage(
                new MainPage() { Title = "" });
  }

  protected override void OnStart ()
  {
   // Handle when your app starts
  }

  protected override void OnSleep ()
  {
   // Handle when your app sleeps
  }

  protected override void OnResume ()
  {
   // Handle when your app resumes
  }
 }
}

0 コメント:

コメントを投稿