開発環境
- OS: Windows 10 Pro
- IDE(統合開発環境): Visual Studio Community 2017
Head First C# ―頭とからだで覚えるC#の基本 (Andrew Stellman (著)、Jennifer Greene (著)、佐藤 嘉一 (監修, 監修)、木下 哲也 (翻訳)、オライリージャパン)の6章(インタフェースと抽象クラス - クラスに約束を守らせる)、プールパズル(p. 257)を取り組んでみる。
コード
MainPage.xaml.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
namespace App2
{
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
string result = "";
INose[] noses =
{
new Acts(),
new Clowns(),
new Of76()
};
foreach (INose nose in noses)
{
result += nose.Ear() + " " + nose.Face + "\n";
}
DisplayAlert("", result, "OK");
}
}
public interface INose
{
int Ear();
string Face { get; }
}
public abstract class Picasso : INose
{
private string face;
public Picasso(string face)
{
this.face = face;
}
public virtual string Face => face;
public virtual int Ear()
{
return 7;
}
}
public class Clowns: Picasso
{
public Clowns() : base("Clowns") { }
}
public class Acts:Picasso
{
public Acts() : base("Acts") { }
public override int Ear()
{
return 5;
}
}
public class Of76:Clowns
{
public override string Face => "Of76";
}
}
0 コメント:
コメントを投稿