2009-07-23 11 views
0

J'ai un code simple dans une classe:génération de code C#/suppression de code redondant

private ITemplate _content1 = null; 
[TemplateContainer(typeof(ContentContainer))] 
public ITemplate Content1 
{ 
    get 
    { return _content1; } 
    set 
    { _content1 = value; } 
} 

je besoin d'environ 15 de ces conteneurs de contenu. Je pourrais juste copier et coller ce bloc 15 fois et changer le nombre, mais il doit y avoir un meilleur moyen. Quelqu'un peut-il suggérer une façon plus propre de le faire?

+0

Pourriez-vous faire en sorte que Content1 contienne des éléments ITemplate? – jrummell

+0

Ce que vous essayez de faire n'est pas clair - une chance d'ajouter un peu de contexte à la question? –

Répondre

3

Essayez ceci:

[TemplateContainer(typeof(ContentContainer))] 
public ITemplate Content1 
{ get; set; } 
+2

Notez que ce n'est disponible qu'à partir de C# 3. –

+0

J'utilise C# 2.0 et cela fonctionne pour moi. J'ai revérifié les propriétés de mon projet et il utilise définitivement le 2.0. Êtes-vous sûr de l'exigence 3.0? –

+0

2.0 Projet .Net! = C# 2.0. Si ça compile, ça va. –

1

Il y a une propriété (prop) Snippet (extraits sont natifs de visual studio).

Modifiez l'extrait (il s'agit d'un simple fichier XML) ou créez-en un nouveau pour votre tâche. ReSharper a un moyen plus simple, appelé modèles de code.

Vous pouvez également générer les propriétés dont vous avez besoin avec un script t4. Mais c'est probablement exagéré. Pourquoi ne pas utiliser une collection de conteneurs tels que List par exemple?

1

Pourquoi ne pas utiliser une collection de conteneurs tels que List par exemple? Il semble que la seule chose que vous pensez changer est l'index des entiers, l'utilisation d'une liste aurait du sens.

Questions connexes