2011-03-20 2 views
0

je peux faireComment faire un "typedef" impliquant une classe imbriquée?

using MyType = System.Collections.Generic.List<SomeClass.AClass>; 

Maintenant, je ne ai besoin MyType à utiliser dans SomeClass. Donc, je n'ai pas vraiment besoin de SomeClass pour être public. Cependant, je ne peux le faire qu'en dehors de mon espace de noms.

Alors, comment puis-je travailler de cette façon que je peux utiliser MyType sans rendre SomeClass et SomeClass.AClass public?

+5

je ne sais pas ce que vous essayez d'atteindre et quel est le problème – BrokenGlass

+0

@BrokenGlass: tl; dr version. Je ne peux pas faire ça avec des cours privés! Comment l'utiliser avec des cours privés? –

+1

Pourquoi avez-vous besoin d'un 'using' du tout si MyType est seulement utilisé dans SomeClass? – Cameron

Répondre

1

Je ne vois pas ce que cela pourrait vous apporter en dehors de sauver des frappes. Si vous voulez le faire pour conserver la possibilité de remplacer facilement le List par un autre type de collection, vous pouvez modifier les types statiques de la variable contenant la collection sur une interface appropriée.

Cela dit, si vous devez aller dans cette voie pour une raison quelconque, il y a toujours cette option:

// Just to be used as a typedef 
class MyType : System.Collections.Generic.List<SomeClass.AClass> 
{ 
} 

Vous pouvez le faire à l'intérieur SomeClass.

+0

Je suis surpris que cela m'ait permis de faire ça. D'accord, +1 –

Questions connexes