開発環境
- OS: Windows 10 Pro
- IDE(統合開発環境): Visual Studio Community 2017
Head First C# ―頭とからだで覚えるC#の基本 (Andrew Stellman (著)、Jennifer Greene (著)、佐藤 嘉一 (監修, 監修)、木下 哲也 (翻訳)、オライリージャパン)の6章(インタフェースと抽象クラス - クラスに約束を守らせる)、エクササイズ(p. 241)を取り組んでみる。
コード
Form1.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApp17
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
ScaryScary fingersTheClown = new ScaryScary("大きな靴", 32);
FunnyFunny someFunnyClown = fingersTheClown;
IScaryClown someOtherScaryclown = someFunnyClown as IScaryClown;
someOtherScaryclown.Honk();
}
}
}
Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApp17
{
static class Program
{
/// <summary>
/// アプリケーションのメイン エントリ ポイントです。
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
public interface IClown
{
string FunnyThingIHave { get; }
void Honk();
}
public interface IScaryClown: IClown
{
string ScaryThingIHave { get; }
void ScareLittleChildren();
}
public class FunnyFunny : IClown
{
private string funnyThingIHave;
public FunnyFunny(string funnyThingIHave)
{
this.funnyThingIHave = funnyThingIHave;
}
public string FunnyThingIHave
{
get { return funnyThingIHave; }
}
public void Honk()
{
MessageBox.Show("プップー!私は" + funnyThingIHave);
}
}
public class ScaryScary : FunnyFunny, IScaryClown
{
private int numberOfScaryThings;
public ScaryScary(string funnyThingIHave, int numberOfScaryThings) :
base(funnyThingIHave)
{
this.numberOfScaryThings = numberOfScaryThings;
}
public string ScaryThingIHave
{
get { return numberOfScaryThings + "匹のクモをもっています"; }
}
public void ScareLittleChildren()
{
MessageBox.Show("ブー!残念!");
}
}
}
0 コメント:
コメントを投稿