54 votes

Convention pour les noms de fichiers des classes génériques

Je veux être en mesure de faire la distinction entre un générique et régulière (non générique) version d'une classe. Un peu comme le .NET framework ne avec elle est générique et non des versions génériques de plusieurs de ses interfaces et de classes de collection. (File D'Attente, File D'Attente(T))

De manière générale, j'aime suivre la convention d'une classe par fichier (comme en Java). Est-il une convention pour nommer les fichiers contenant une seule classe générique? Je suis surtout intéressé à la Windows (NTFS en particulier), mais il semble comme une bonne convention serait (au moins un peu) portable.

43voto

Nick Aceves Points 949

Viens de trouver cette question après la recherche de ce que les conventions d'autres personnes utiliser la classe générique des noms de fichiers.

Dernièrement, j'ai été en utilisant ClassName[T].cs. J'aime vraiment cette convention, et je pense qu'il est supérieur aux autres pour les raisons suivantes:

  • Les paramètres de type de saut à vous peu plus que ce qu'ils font avec l' Microsoft convention (par exemple, ClassNameOfT.cs).
  • Il permet de disposer de plusieurs les paramètres de type sans trop de confusion: Dictionary[TKey, TValue].cs
  • Il ne vous demande pas de créer tous les dossiers spéciaux, ou avoir vos classes génériques dans un espace de noms particulier. Si vous n'avez que quelques classes génériques, ayant un espace de noms particulier qui leur est dédié n'est tout simplement pas pratique.

J'ai emprunté cette convention de Boo's syntaxe générique, quoique légèrement modifié (Boo utilise ClassName[of T]).

Certains développeurs semblent avoir une phobie des noms de fichiers qui contiennent rien de mais des lettres et des caractères de soulignement, mais une fois que vous pouvez obtenir passé que cette convention semble très bien fonctionner.

41voto

Mark Cidade Points 53945

Chez Microsoft, ils utilisent ClassNameOfT.cs .

16voto

Wim.van.Gool Points 325

Je vois que ce sujet a été abandonné plus d'un an, mais je tiens à partager mon point de vue sur cette convention.

Tout d'abord, le fait d'avoir plusieurs classes qui ont le même nom, mais diffèrent dans la quantité de paramètres n'est pas toujours une affaire de rétro-compatibilité. Sûrement, vous ne le voyez pas très souvent, mais la nouvelle Action - et Func-classes de .NET ont été seulement conçu de cette façon, et je suis en train de mettre en place quelque chose de similaire.

Pour plus de clarté et de distinguabilité, j'utilise la convention suivante qui spécifie uniquement le nombre d'arguments génériques pour un type donné:

  • MyClass.cs
  • MyClass.T1.cs
  • MyClass.T2.cs

De cette façon, mes noms de fichiers séjour courts et simples, tout en communiquant clairement le nom de classe et le nombre différent de paramètres de type, au prix d'un simple supplément de dot (qui est, dans mon expérience, communément acceptée chose à faire dans un nom de fichier et est beaucoup mieux que d'une virgule et d'autres non-alpanumeric personnages, mais c'est juste une question de goût je suppose). Mettre les noms (ou les acronymes) des paramètres de type juste allonge les noms de fichiers alors qu'à ce niveau je ne suis pas vraiment intéressé par les noms réels des paramètres de type et de toute façon...

5voto

anon Points 41

N'utilisez pas de l'accent grave ` dans votre générique les noms de fichiers si vous utilisez Visual Studio 2008. Il y a un problème connu avec eux qui provoque des points d'arrêt à l'échec:

http://connect.microsoft.com/VisualStudio/feedback/details/343042/grave-accent-in-filename-causes-failure-to-recognize-target-language-breakpoints-fail

1voto

Andrew Hare Points 159332

Comment à ce sujet:

Type.cs

et

TypeGeneric.cs

Chaque fois que je l'ai fait dans le passé, j'ai toujours mis les deux types dans un fichier avec le non-type générique comme nom de fichier. Je pense que ce qui rend les choses assez clair que .NET n'a pas de conventions/restrictions sur un type de fichier, comme Java.

Mais si vous devez alors je proposerais quelque chose comme j'ai ci-dessus, et à l'aide d'un suffixe de rendre les fichiers affichent ensemble dans n'importe quelle liste par ordre alphabétique (l'Explorateur de solutions, l'Explorateur Windows, etc.).

Voici une autre idée:

Type`1.cs

Cela vous permettrait de briser les différents types génériques par le nombre de paramètres de type générique ils ont accepté. C'est juste une pensée, même si, comme je pense toujours qu'il serait plus simple de mettre tous les types dans un seul fichier.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X