2009-08-28 3 views
16

Aus Gewohnheit habe ich Klassen/Strukturen/Enumerationen in separaten Dateien, wenn nicht geschachtelt.Wo kann ich meine C# -Teilnehmerdeklaration in einer eigenen Datei ablegen?

Für Teilnehmer, scheint es, wie viel des Guten eine separate Datei für einen Einzeiler zu erstellen:

public delegate string MyDelegateThatIsNotNestedInAnyClass (string par); 

Ich füge es in der Regel auf der Unterseite der am engsten verwandten Klassendatei. Ich habe mich nur gefragt, was andere Leute tun?

Antwort

1

Normalerweise benutze ich nur:

Func<string, string> 

in diesen Tagen

+0

Während ich zustimme, dass dieser generische Delegat einen Großteil der Arbeit wegnimmt, um seine eigenen Delegierten zu deklarieren (da es viele von ihnen aufnehmen kann), ist es wirklich keine Antwort auf seine Frage, so kann ich nicht upvote. –

+0

Ich schwöre, ich bin die einzige Person, die irrelevante Antworten tatsächlich downvotes. – jfar

+0

@jfar: Ist dir bewusst, dass du eine verblüffende Ähnlichkeit mit Victor Creed (alias Sabertooth) von X Men Origins: Wolverine hast? –

2

ich es in der Regel fügen der CS-Datei der Klasse, die die Delegierten Funktion implementiert (im Namespace-Ebene). Wenn es mehrere davon gibt, lege ich es in eine separate Datei.

Wenn ich sicher bin, dass nur eine Klasse die Delegate-Funktion implementieren wird, schalte ich es in der implementierenden Klasse.

1

ich hinzufügen, es persönlich vor einer eng verwandten Klassendefinition . Ich benutze allerdings Namespaces, also verschmutze ich nicht!

1

Wenn es eng genug verwandt ist, um in die gleiche Datei wie die Klasse zu gehören, dann können Sie wahrscheinlich eine Verschachtelung in der Klasse rechtfertigen. Dann haben Sie keine Probleme sich zu erinnern, in welcher Klassendatei sie sich befindet.

Wenn es keine einzelne Klasse gibt, die eine naheliegende Wahl ist, ist die Erstellung der Einzeilendatei wahrscheinlich lohnenswert, da Sie niemals Zeit verlieren werden, sich zu erinnern In welcher Klassendatei hast du dich entschieden.

1

Ich erkläre immer meine eigenen Ereignisse, auch wenn ich sie nicht brauche, dass ein generisches Ereignis genügen würde. Der Grund dafür ist, dass der Klassenname des Ereignisses dem Code so viel mehr Lesbarkeit verleiht und nicht selten wird das erklärte Ereignis aus irgendeinem Grund später benötigt. Da ich eine Ereignisklasse habe, setze ich den Delegaten immer über die Klassendeklaration des Ereignisses. Sie sind eng miteinander verbunden und wenn Sie auf das Ereignis hören möchten, benötigen Sie sowohl das Ereignis als auch den Delegierten. Ich weiß nicht, ob das irgendwelche Designregeln irgendeiner Art verletzt, aber das hat gut für mich funktioniert.

Verwandte Themen