2010-09-21 6 views
2

Je construis un jeu et j'ai plusieurs groupes d'espaces de noms. L'un s'appelle "Engine" l'autre "Game". Il y a plusieurs fonctions et variables que je veux seulement que Engine puisse voir. Que dois-je faire pour masquer certaines fonctions (pas des classes entières) de l'espace de noms Game.Masquer les fonctions des espaces de noms externes

Répondre

6

C# n'a aucun modificateur d'accès qui se rapporte aux espaces de noms.

Au lieu de cela, peut-être vous devriez mettre vos types dans différents ensembles - puis utilisez le modificateur d'accès internal pour limiter l'accès à l'ensemble dans lequel un type ou un membre est déclaré.

De plus, si vous voulez un type qui ne concerne que un autre type, vous pouvez imbriquer et le rendre privé:

internal class Outer 
{ 
    // Only the Outer class knows about Nested. 
    private class Nested 
    { 
    } 
} 
+0

Pouvez-vous expliquer ce que vous entendez par «différents assemblages»? – Dave

+0

@Dave: séparer les fichiers DLL. –

0
+0

Les espaces de noms ont beaucoup de classes, je veux pouvoir parler entre eux mais pas sans espaces de noms extérieurs. C# n'a pas de classes d'amis ce qui signifie que je dois utiliser autre chose. – Dave