兼業主夫 ときどき 指揮者 のち ギーク?

2009-02-04

分かった! かも

 昨日の「「オブジェクト指向」って難しい - 兼業主夫 ときどき 指揮者 のち ギーク?」について、id:kidd-number5さんが親切に教えてくれた。

オブジェクト指向をエンティティ的なクラスでやる場合 - ito.tetsunosuke/notebook

あと、別なところでid:myamya19701022さんも丁寧に教えてくれた。

で、いろいろ調べたり、ない知恵を振り絞って自分なりにいろいろ考えてみた。

 念のため、classがどうなってるかを再掲。

class User
{
  private string strUserName;  //ユーザー名
  private string strCharaName; //キャラクタ名

  public string userName
  {
    get
    {
      return strUserName;
    }
    set
    {
      strUserName = value;
    }
  }

//〜〜以下略〜〜

}

 それでひらめいたんだけど、呼び出し側をこうすればいいんじゃね?

public partial class MainForm : Form
{
  Hashtable userTable = new Hashtable();

  void skype_MessageStatus(ChatMessage pMessage, TChatMessageStatus Status)
  {
    User user = new User();

    if(modeSwitch == "add")
    {//登録時
      user.userName = "ひこ";   //まず値を書き込む
      userTable["キー"] = user; //ハッシュテーブルに格納する
    }

    else if(modeSwitch == "update")
    {//更新時
      user = userTable["キー"];        //まずハッシュテーブルから読み出す
      user.userName = "紫のバラの人"; //変更する値を書き込む
      userTable["キー"] = user;       //ハッシュテーブルに格納する
    }

    else
    {//読み出し時
      user = userTable["キー"];  //まずハッシュテーブルから読み出す
      hogehoge = user.userName; //実際に値を読み出す
    }
  }
}

※ 「modeSwitch」は記述外で宣言されているものとする。

 これなら

if(ht.ContainsKey("チェックしたいキー"))
{
  存在した時の処理
}

//もしくは

if(!ht.ContainsKey("チェックしたいキー"))
{
  存在しない時の処理
}

で、ぶん回さなくても存在チェックが行える。

 って、まだ実際にやってないから、できるかどうか分からないんだけど(汗)

myamya19701022myamya19701022 2009/02/04 14:53 modeSwitch == "add" とかかっこわりぃから TypeSafeEnum 作ってやってみたら?

この辺りが参考になるかも〜
http://d.hatena.ne.jp/bleis-tift/20080808/1218133517

hiko_shiko_s 2009/02/04 15:10 ご指摘ありがとうございます。
疲れた頭では半分も理解出来ていません(汗)が、後日しっかり勉強して理解したいと思います。

kidd-number5kidd-number5 2009/02/05 13:41 紛らわしくて申し訳ないが私のはてなidはtetsunosukeではない(笑)

hiko_shiko_s 2009/02/05 16:34 ぎゃー、昨日はちゃんと認識できていたのに(汗)
直しておきました。すみません。

投稿したコメントは管理者が承認するまで公開されません。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証