C# 演習

C#のインターフェースを通して通知を送る

このレッスンでは、インターフェースを通して通知を送り、既存のコードを直さずに送る手段を変えたり追加したりしやすくします。

はじめに

インターフェースは、通知を送るコードを、SMS、メール、チャットアプリといった具体的な送る手段から切り離します。使う側のコードはオブジェクトがSendメソッドを持っていることだけを知っていればよく、どう送るかは各クラスが決めます。

Notifyメソッドの引数はIChannel型なので、このインターフェースを実装したどのクラスとも動きます。Smsオブジェクトを渡すと通知はSMSで送られ、SMS: Shippedと表示されます。後からメールの手段を追加したいときは、Notifyを直さずに新しいクラスを作るだけです。

実行できる C# の例

C#
コードを実行 →
Program.cs
using System;
interface IChannel { void Send(string message); }
class Sms : IChannel { public void Send(string message) => Console.WriteLine($"SMS: {message}"); }
class Program
{
    static void Notify(IChannel channel, string message) => channel.Send(message);
    static void Main() => Notify(new Sms(), "Shipped");
}
実行結果
SMS: Shipped

デバッガーで練習する

大事な代入や条件にブレークポイントを置いて Debug を押し、次の行に進む前にローカル変数の値を確かめましょう。

チャレンジで練習する

このレッスンの内容を使って実際の問題を解きましょう。各チャレンジはブラウザで動き、すぐにテストされ、AI のレビューも受けられます。

すべてのチャレンジ