開発環境
- 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 コメント:
コメントを投稿