2010-09-20 7 views
2

Remarque: l'application, par opposition aux bibliothèques.Est-ce que toutes les classes de mon application .NET peuvent être internes?

J'ai une application WPF. Il est décomposé en un projet d'application principal et des bibliothèques de classes associées.

Y a-t-il des circonstances où l'une des classes dans l'application principale ont besoin d'être public, par opposition à internal? Par exemple, les liaisons de données ou les convertisseurs de valeur WPF doivent-ils être publics si le XAML se trouve dans le même assembly?

+1

Je fais en sorte que tous mes cours sur les applications soient «internes» partout, à moins que je ne puisse me permettre de les rendre «privés» ou «protégés». –

+0

@ Ho1, les classes protégées et privées ne sont possibles qu'avec des classes imbriquées ... Ce n'est pas un cas fréquent. – Dykam

+0

Mise à jour pour expliquer une partie de ma confusion: le modèle XAML par défaut rend la classe générée 'public'. Cela tend alors à empiéter sur d'autres parties du code, ce qui signifie que plus est public que nécessaire. Utiliser 'x: ClassModifier =" internal "' sort le XAML ... –

Répondre

3

Sauf si vous envisagez de référencer votre fichier EXE à partir d'une autre application, il n'y a aucune raison que vos classes ne puissent pas être exclusivement internal.

3

Si vous ne prévoyez aucune des classes interagissant en dehors de l'exécutable de l'application, cela devrait fonctionner.

Évidemment, ce serait différent si votre application commençait à utiliser différents assemblages pour séparer le code.

2

Absolument.

Vous devez utiliser le Principle of Least Privilege pour gérer l'interaction de vos classes. S'ils n'ont pas besoin d'être visibles en dehors de l'assemblage immédiat, utilisez internal. Si elles ne seront utilisées que par une autre classe, créez-en une classe imbriquée private. Etc.

Questions connexes