静的 ボイドメイン(文字列[]引数) { マウスマウス = 新しいマウス(" 米奇"、" 黄色" )。 猫猫 = 新しい猫(" 米奇"、" 黄色" 、マウス); cat.CatCome(); Console.ReadKey(); }
// オブザーバである クラスキャット { プライベート文字列_name; プライベート 文字列_Color、 デリゲートの ボイド MyDelegate(); // カスタムデリゲート型、デリゲートをパッケージングする方法が値とのパラメータを返すことができない プライベート イベント MyDelegate CatComeEventHandlerを; // 使用デリゲートの宣言がイベントを定義します。しかし、デリゲートとイベントとそこには本質的な違いはありませんが、それは、クラス定義外のイベントではありません //にアクセスします。イベント、特別なデリゲート署名。 パブリックキャット(文字列名、文字色、マウスマウス) { この ._name = 名; この ._color = カラー、 この+ = Mouse.MouseRun .CatComeEventHandler; // イベントを登録し、イベントがmouse.MouseRunの方法を指します } 公共 ボイドCatCome() { Console.WriteLineを(" 名前:" + _name + " 猫の鳴き声" ); CatComeEventHandler (); // イベントを登録するメソッドを呼び出して使用します。CatCome事件は、イベントが発生し、登録されました。これは、Observerパターンです。 } }
// ビューアの クラスマウス { プライベート文字列_name; プライベート文字列_Color; 公共マウス(文字列名、文字列の色) { _name = 名; _Color = 色; } パブリック 無効MouseRun() { Console.WriteLineを(" という名前:" + + _name " げっ歯類エスケープ開始" ); } }