「オブジェクト指向」って難しい

 これまで「オブジェクト指向」なるものを学ぶ必要性を感じなかったので横目で気にしつつも素通りしてきたのだが、C#を始めたのでさすがに学ばない訳にもいかなくなって悪戦苦闘しているところ。

 とりあえず、だ、

class User
{
  private string strUserName;  //ユーザー名
  private string strCharaName; //キャラクタ名
  private string strCharaSex;  //キャラクタ性別
  private string strCharaAage; //キャラクタ年齢

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

//〜〜以下略〜〜

}

(※ id:kidd-number5 さんのご指摘により一部修正しました)

というクラスがあるとして、よくあるサンプルだと

User taro = new User();
User hanako = new User();

てな具合に書いてあるが、これはユーザー数が明確に分かっている場合に使える手であって、ユーザー数が不特定多数の場合にどうすればいいのかがいまいち分からない。

public partial class MainForm : Form
{
  private User[] user;

  void skype_MessageStatus(ChatMessage pMessage, TChatMessageStatus Status)
  {
    user[0].userName = "";
  }
}

てな事はできるっぽいが、これだと例えば"userNameが「麻生太郎」なデータの存在チェック"をやろうと思うと、userの数だけぶん回してチェックする事になって「オブジェクト指向」っぽくない気がする。(Excel VBAとかだったら深く考えずにそうやってしまうんだけど)

 「オブジェクト指向」というものが「掴めそうで掴めない」ところがもどかしい。