2011-12-13 3 views
1

J'ai une question relative à l'implémentation de C# sur Model-View-Controller. Je suis assez nouveau à C#, donc j'apprécierais quelques explications.Implémentation du contrôleur Model View en C#

Je développe une application Windows. Il est construit comme suit, avec Visual Studio. Il utilise les 3 classes suivantes. Program.cs, Controller.cs et mainWindow.cs. Lorsque l'application démarre, je veux créer un contrôleur qui crée une mainWindow et ensuite le contrôleur doit traiter toutes les données entrées dans la mainWindow.

Program.cs: 
static void main() { 
    Controller controller = new Controller(); 
    controller.init(); 
} 

Controller.cs 
class Controller { 

    public void init() { 
     Application.EnableVisualStyles(); 
     Application.SetCompatibleTextRenderingDefault(false); 
     Application.Run(new mainWindow(this)); 
    } 
} 

mainWindow.cs 
public partial class mainWindow : Form 
{ 
    public mainWindow(Controller parent) 
    { 
     InitializeComponent(); 
     parent.closeThisForm(); 
    } 
} 

Alors, quand je tente d'exécuter ce code, je reçois l'erreur suivante: accessibilité Incohérence: type de paramètre « ... Controller » est moins accessible que la méthode « abc.mainWindow.mainWindow (abc.Controllers.mainController) '. Je comprends que c'est de faire quelque chose avec des privilèges, mais je ne comprends pas exactement pourquoi et quoi.

J'espère que quelqu'un peut m'aider avec ce problème (plutôt simple).

+1

Pour WinForms, vous voudrez peut-être examiner MVP aussi bien. –

Répondre

5

Je crois que vous devez faire la classe contrôleur publique

public class Controller

+0

Aww, tu m'as battu dessus! –

+0

Je savais que je devais être rapide :) –

+0

Merci à tous pour votre réponse, je me sens vraiment stupide maintenant, était juste en train de regarder par-dessus. –

Questions connexes