[英]Objects and references
我現在在對象和引用中有點迷失了。 我正在構建一個包含一些不同類和winForms的小項目。
這是我的項目的簡短描述:我有一個MainForm,當我點擊“添加新電影”按鈕時,MovieForm會打開,我輸入有關電影的信息。 當我單擊“保存”按鈕時,我在MovieForm中創建信息的NewMovie對象。
下一步是將此NewMovie對象保存到文件中。 在這里我有點迷失在如何從另一個類別的其他地方從這個NewMovie對象中獲取數據,比如MovieManager,然后我從那里使用FileManager的對象來保存數據?
在MainForm中,我有這段代碼來檢測在MovieForm中點擊“添加新電影”按鈕的時間:
MovieForm movieForm = new MovieForm();
if (movieForm.ShowDialog() == DialogResult.OK)
{
Do something here?
}
我可以在這里到達或傳遞新的MovieForm對象嗎? 那我該怎么辦? 在我的項目中我也有一個MovieManager。 一種方法是將對象傳遞給該類? 我應該在MovieForm中創建MovieManager的對象,並在創建NewMovie對象后以這種方式傳遞數據嗎?
提供一些幫助和想法! 謝謝!
ShowDialog完成后,對movieForm
的引用仍然有效。 因此,您可以在MovieForm中創建公共屬性:
class MovieForm {
...
public NewMovie Result { get; private set; }
...
}
您在MoveForm中設置此值(當窗體關閉或按下某個“保存”按鈕時),然后您可以在主窗體中讀取它並將其傳遞給MovieManager:
MovieForm movieForm = new MovieForm();
if (movieForm.ShowDialog() == DialogResult.OK)
{
NewMovie newMovie = movieForm.Result;
myMovieManager.CreateNewMovie(newMovie);
}
在MovieForm類中創建一個屬性,並在創建實例時傳遞其值。
您應該從MovieForm返回新創建的Movie實例並將其存儲在管理器中。
public class MovieManager
{
List<Movie> movies;
public void AddMovie(Movie movie)
{
movies.Add(movie);
}
public Save()
{
}
}
public class Movie
{
public string Name;
}
public class MainForm
{
MovieManager manager;
private void NewMovieClick(...)
{
using(var form = new MovieForm())
{
if(form.ShowDialog(this) == DialogResult.OK)
{
manager.Add(from.Movie);
}
}
}
}
public class MovieForm
{
public Movie Movie;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.