単一の親クラスまたは中央静的クラスに情報を保存する方が良いですか

StackOverflow https://stackoverflow.com/questions/6346344

質問

どちらが情報を保存するより良い方法だと思いますか?中央静的クラスまたは親クラス?

私が今それを保存している方法のためのコード。私は毎回新しいクラスを導入します。

親クラス:

public partial class frmEmployeeManager: Form
    {
        List<Employee> lstEmployees = List<Employee>();
        public frmEmployeeManager()
        {
            InitializeComponent();
        }
        public void updatePay(float Pay, int ID)
        {
            //Where ID = ID change the Pay
            //(Omitted the foreach loop here for brevity)
        }
        private void btnDisplayData_Click(object sender, EventArgs e)
        {
             frmUpdatePay dlgUpdatePay = new frmUpdatePay(this);
             dlgUpdatePay.ShowDialog();
        }

     }

チャイルドクラス:

public partial class frmUpdatePay : Form
{
    private frmEmployeeManager ParentEmployeeManager;

    public frmUpdatePay(frmEmployeeManager EmployeeManager)
    {
        InitializeComponent();
        ParentEmployeeManager = EmployeeManager;
    }
            AddPersonParent.updatePay(fltPayInput, intID);
}
役に立ちましたか?

解決

暗闇の中で突き刺す(あなたが何を達成しようとしているのか正確にはわからないので)、私はインスタンス化されたクラスを作り、シングルトンパターンを使用します。

他のヒント

個人的には、中央の静的クラスを使用します(そして行う)。どちらの選択もOOの原則を破りますが、少なくとも中心的な静的クラスのアプローチは、私のフォームの内側の動作を外部に露出させません。

物事の「状態」を保持している静的リストを使用したとき、私は前にトラブルに巻き込まれました、そして、私は自分自身がリストを「クリア」または「更新」するために静的関数を追加していることに気づきました。または、静的なものではないもののリストまたは変数。

変更できるオブジェクトをリストに保持している場合、私はインスタンス化されたルートに行きます。

更新しました

あなたのリストが従業員リストであるとわかったので、それを静的に変換すると基本的にはグローバル変数になります。グローバル変数は良くありません。私はこの答えを見つけました それをかなりよくまとめます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top