2014-12-04 147 views
0

我試圖通過Visual Studio實現21點,但剛剛被介紹給它。假設我有一個PictureBox代表手中的一張牌。這個盒子從一張面朝下的卡片的圖像開始,表示尚未處理過的卡片插槽。我在我的Form對象中有一個函數,它將PictureBox圖像更改爲另一個基於整數參數的卡片圖像資源。這是非常標準的。關於Visual Studio窗體方法調用Program.cs和一般邏輯建議

我遇到麻煩實際上是從main調用方法。我可以創建一個新的Form對象,並將自動生成的對象設置爲不可見,但我寧願使用自動生成的表單。我應該把所有的遊戲邏輯放在Form1.cs文件中嗎?自動生成的表單對象是否有一些我可以使用的默認名稱?

我意識到這似乎是相當初級的水平,但它似乎是微軟的支持文檔希望您從設計視圖中創建整個項目,並沒有太多幫助的實際編碼。

+0

使用「自動生成」表單,就像您所說的那樣。除非你知道你在做什麼,並且想要爲特定的原因編輯它,否則不要亂用'program.cs'文件。重要的是它按照它的方式實例化主表單。這就是說,這是你的設計要求。你所有的邏輯都可以進入主表單的代碼隱藏。就個人而言,我更願意將其放置在能夠從多個地方被實例化一個單獨的類,所以你不要用一堆難以維護的代碼,其中多種形式都有回傳達到原來的結束窗體來運行它的代碼。 – 2014-12-04 03:31:32

+0

雖然我認爲這可能過於寬泛。你會得到一些意見(像我),但它可能是上手是一個好主意,當你有一個工作程序,你就準備好設計問題的反饋,你可以考慮它發佈到[代碼審查] (http://codereview.stackexchange.com/)。只是我2美分。 – 2014-12-04 03:33:58

回答

0

簡單Forms程序的典型模型是允許Program.cs中的Main()方法保持其默認形式:設置一些東西,創建子類的主實例Form(類名默認爲Form1),並將其傳遞給Application.Run()方法。

在UI對象之外有一個「控制器」對象是一個很好的設計。但是,特別是如果您剛開始使用,您可能會發現,如果該「控制器」邏輯也位於您的主要子類中,則會更簡單易懂。

在這種情況下,是…所有的代碼中的一個cs文件捲起,並且實際上在一個對象。

即使在Form對象控制器邏輯,你還是會發現它有用記住這基本上是控制器邏輯從獨立的,這是用戶界面邏輯的代碼,並使用C##region指令來標註這些章節的代碼。這將有助於你保持一個心智模式,這個模型仍然可以將同一個班級中的兩個角色分開。

除此之外,有很多不同的觀點,從完整的「拍來自該臀」的方針,以極其嚴格,嚴謹遵守具體的設計模式。但以上內容與Visual Designer引導您的模式一致,所以對於初學者來說是一個很好的開始。