2017-07-14 235 views
1

我正在使用Windows Forms在C#中編寫應用程序。有時我改變了我的項目設置,並將'輸出類型'設置爲'控制檯應用程序'。將C#編譯爲2個exe文件

我想知道是否有可能將項目作爲Windows窗體應用程序和控制檯應用程序編譯爲2個.exe文件?

+1

不,這是不可能的,因爲這兩個項目是完全不同的。但是,您可以從控制檯應用程序內創建表單,並具有指示您想要打開GUI的命令行參數。 – HimBromBeere

+0

您可以檢查某些特定的可執行參數,並在特殊標記的情況下使用'AllocConsole'來分配控制檯。 –

回答

10

你應該把你的邏輯放入一個DLL並創建兩個應用程序:一個控制檯應用程序和一個winforms應用程序。這將是最乾淨的,在我看來是最好的方式。

所以你可以處理不同的需求並以最好的方式爲每種應用類型處理它們。

1

要擴大Mighty Badaboom's answer,想象你正在實施一個井字遊戲遊戲。

一個好的設計是在其自己的類庫(dll)中實現與用戶界面分離的所有遊戲邏輯。這裏面類庫,你可以定義基本的共同行爲的任何兼容的用戶界面必須提供:

public interface IUserInterface 
{ 
    void ShowBoard(); 
    Move GetPlayerMove(Player player); 
    void ShowWinnerAnimation(Player player); 
    void ShowDrawAnimation(); 
    ///etc 
} 

而現在,你可以實現不同的用戶界面(控制檯,網頁,Windows窗體等)可以注入通過接口到您的Game對象:

IUserInterface myUserInterface = new WindowsFormsInterface(); 
var game = new Game(myUserInterface); 
game.Run(); 
+0

不錯的例子:) –