ariyasacca

カテゴリ一覧

Biz | SF | Software | tDiary | Web | ゲーム | サバティカル | スポーツ | ミステリ | メタル | 健康 | 投資 | 携帯 | 時事ネタ | 死生観 | 資格 | 雑記
2004|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|06|07|08|09|10|11|

2009-11-09 (月) [長年日記]

[雑記]28歳になりました

28歳になりました。

エッチなコンテンツを合法的に鑑賞可能になって10年が経過したと思うと、何だか感慨深いものがあります。居酒屋でおごってもらうなど、ちょっと良いこともありました。

ゲームをやらなくなった

今年はゲームソフトを1本も購入していません。まさか自分が全くゲームで遊ばなくなる日が来るとは、10代の頃には想像もできませんでした。

こういう現象は、社会人になって患う中二病のようなものだと聞くので、またそのうち遊ぶようになるのかもしれません。

[雑記]C#で自分以外のクラスが持つイベントを発生させたい

C#では、クラス自身が持つイベントでなければ、イベントの発生を登録されたイベントハンドラに通知することができません。

どうしても外部のクラスから、自分以外のクラスが持つイベントを発生させたいときはどうすれば良いのか試してみました。リフレクションは後から読み返した時にメンテナンス不可能なほど複雑になりそうなのでやめました。

class Hoge 
{
    //いろいろイベントを定義
    public delegate void LoadEventHandler(object sender);
    public event LoadEventHandler Loaded;

    public Action GetEventTrigger(eventName)
    {
        Action trigger;

        //公開しても良いトリガであれば返す
        swtich (eventName.ToLower())
        {
            case "loaded" :
                trigger = () => 
                {
                    if (this.Loaded != null) this.Loaded(this);
                }

                break;
            
            case "initialized" :
                trigger = () => 
                {
                    if (this.Initialized != null) this.Initialized(this);
                }

                break;

            default :
                throw new ArgumentException();
        }

        return trigger;
    }
}

var hoge = new Hoge();
var trigger = hoge.GetEventTrigger("Loaded");

//イベントの通知
trigger();

Actionデリゲートで返してやれば、外部からイベントをフックすることも可能ですね。

そもそも外部のクラスからイベントを発生させるとか設計を疑った方がいいですねわかります。

本日のツッコミ(全6件) [ツッコミを入れる]
Ussy (2009-11-10 (火) 01:05)

あら、お誕生日おめでとうございます。<br><br>>外部のクラスからイベントを発生させる<br>Listener つくればいいと思います。 .NET の場合はそれが event なんだっけ?.NET に取り組むなら「プログラミングMicrosoft .NET Framework 第2版」買うといいと思います。読んでいたらごめんなさい。

雷悶 (2009-11-10 (火) 08:20)

そいえば.NETの本は一冊も読んだことがなかったです。いろいろとお作法を間違えたままになってないか心配になってきたお・・・。

rancor (2009-11-10 (火) 20:02)

28歳の誕生日、おめでとうございます!

雷悶 (2009-11-10 (火) 21:41)

ありがとうございます!

店長やまもち (2009-11-14 (土) 09:05)

あらおめでとん!なんかゲームやろうぜ!(ワシも特にやっていない)

雷悶 (2009-11-14 (土) 18:16)

ありがとうございます! 来年こそゲームやるぜ!(今年はあきらめた)


最近のツッコミ

  1. ともお (2024-05-29(水)20:59)「真上からの恐怖🫨」
  2. いちごみるく (2024-05-29(水)20:59)「🩸」
  3. レモン (2024-05-29(水)20:59)「レモン」

参号館  の中の  日記(ariyasacca)

トップ «前の日記(2009-11-06 (金)) 最新 次の日記(2009-11-14 (土))» 編集