2018年7月9日月曜日

開発環境

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

コード

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();

            A a = new A();
            B b = new B();
            C c = new C();
            A a2 = new C();
            string q = "";

            q += b.m1();
            q += c.m2();
            q += a.m3();
            DisplayAlert(
                "",
                (q == "Bのm1, Aのm2, Aのm3, ").ToString(),
                "cancel");

            q = "";
            q += c.m1();
            q += c.m2();
            q += c.m3();

            DisplayAlert(
                "",
                (q == "Bのm1, Aのm2, Cのm3, 13").ToString(),
                "cancel");

            q = "";
            q += a.m1();
            q += b.m2();
            q += c.m3();
            DisplayAlert(
                "",
                (q == "Aのm1, Aのm2, Cのm3, 13").ToString(),
                "canel");

            q = "";
            q += a2.m1();
            q += a2.m2();
            q += a2.m3();
            DisplayAlert(
                "",
                (q == "Bのm1, Aのm2, Cのm3, 13").ToString(),
                "cancel");

        }
    }

    public class A
    {
        public int ivar = 7;
        public virtual string m1()
        {
            return "Aのm1, ";
        }
        public string m2()
        {
            return "Aのm2, ";
        }
        public virtual string m3()
        {
            return "Aのm3, ";
        }
    }

    public class B : A
    {
        public override string m1()
        {
            return "Bのm1, ";
        }
    }

    public class C:B
    {
        public override string m3()
        {
            return "Cのm3, " + (ivar + 6);
        }
    }
}

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 コメント:

コメントを投稿