2013-11-20 106 views
0

使用c# - WinForms,.net Framework 4.5,VS 2012在類之間管理數據的最佳方式是什麼?

嘗試使用某個實體創建小應用程序。 我創建單獨的類我的實體,並把一些簡單的代碼中:從主窗體

public class Car 
{ 
    public string Color {get; set;} 
    public string Make { get; set; } 
    public string CarModel { get; set; } 
} 

然後,我創建的一些標本類Car(創建可通過點擊主表單按鈕geted,點擊新的形式後如果輸入信息並點擊OK按鈕,將打開3個文本框 - 必須創建新的Car樣本並返回到主窗體)。

爲此,我嘗試使用下面的代碼:

public Car myCar = new Car(); 
    private void buttonAdd_Click(object sender, EventArgs e) 
    { 
     myCar.Color = textBoxColor.Text; 
     myCar.Make = textBoxMake.Text; 
     myCar.CarModel = textBoxModel.Text; 
     this.DialogResult = DialogResult.OK; 
     this.Close(); 
     MessageBox.Show("Added"); 
     this.Close(); 
    } 

對於來自新形式我使用公共領域public Car myCar = new Car();主要形式的移動數據,但這不是要做到這一點的最佳方式,由於使用public字段。

另一種方式,我發現 - 在主窗體創建下一個方法

static List<Car> carInStock = null; 
    public static void myCar(string color, string make, string model) 
    { 
     Car myCar = new Car 
     { 
      Color = color, 
      CarModel = model, 
      Make = make 
     }; 
     MainForm.carInStock.Add(myNewCar); 
    } 

和按鈕可以用這樣的方法:

private void buttonAdd_Click(object sender, EventArgs e) 
    { 
     MainForm.myCar(textBoxColor.Text, 
     textBoxMake.Text, 
     textBoxModel.Text); 
     MessageBox.Show("Added"); 
     this.Close(); 
    } 

但認爲瓦里安還沒有HTE最好優先。

問題:什麼是從一種形式移動創建的實體(在Car這種情況下,實體,表示爲myCar)到另一個的最佳方式?

+1

請定義「最好」。大多數可讀?快?內存高效? –

+1

可能是汽車存儲庫。查找依賴注入。 – Romoku

+0

意味着「最好」最保護的方式和快速 – gbk

回答

2

對於這種GUI應用程序,我建議你遵循MVC或MVP模式。類車是模型,Windows窗體是視圖,視圖不包含模型的實例,視圖通過控制器或演示者更新。

你可以找到更多關於MVC/MVP的信息here

+0

如果是誠實的 - 從來沒有讀過'模式'(正如我寫的abowe),但看起來像它非常有用的東西 – gbk

+2

請學習MVP - 它會讓你WinForms的生活要容易得多。 :) – IAbstract

+0

@Matt - 真正有趣和有益的鏈接 – gbk

相關問題