2009-07-23 2 views
0

Ich habe einigen einfachen Code in einer Klasse:C# Codegenerierung/Entfernen von redundantem Code

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

ich etwa 15 dieser Inhalts Behälter benötigen. Ich könnte diesen Block 15 Mal kopieren und einfügen und die Nummer ändern, aber es muss einen besseren Weg geben. Kann jemand einen saubereren Weg vorschlagen, dies zu tun?

+0

Könnten Sie Content1 mit ITemplate-Elementen versehen? – jrummell

+0

Es ist nicht klar, was Sie zu tun versuchen - eine Chance, der Frage einen Kontext hinzuzufügen. –

Antwort

3

Versuchen Sie stattdessen:

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

Beachten Sie, dass dies nur ab C# 3 verfügbar ist. –

+0

Ich benutze C# 2.0 und das funktioniert für mich. Ich habe die Eigenschaften meines Projekts überprüft und es wird definitiv 2.0 verwendet. Sind Sie sich über die 3.0-Anforderung sicher? –

+0

2.0 .Net-Projekt! = C# 2.0. Wenn es kompiliert, geht es dir gut. –

1

Es ist eine Eigenschaft (prop) Snippet (Schnipsel sind native zu Visual Studio).

Entweder ändern Sie das Snippet (es ist eine einfache XML-Datei), oder erstellen Sie ein neues für Ihre Aufgabe.

ReSharper hat einen einfacheren Weg, Code-Vorlagen genannt.

Oder generieren Sie die Eigenschaften, die Sie mit einem T4-Skript benötigen. Aber das ist wahrscheinlich Overkill.

1

Warum nicht eine Sammlung von Containern wie zum Beispiel List verwenden? Es scheint, dass das einzige, was Sie ändern, der Integer-Index ist, die Verwendung einer Liste würde Sinn machen.