2009-08-28 2 views
16

Per abitudine tendo a mettere classi/structs/enumerations in file separati quando non sono nidificati.Dove posso inserire la mia dichiarazione delegato C#, in un file a sé stante?

Per i delegati, sembra eccessivo per creare un file separato per un uno di linea:

public delegate string MyDelegateThatIsNotNestedInAnyClass (string par); 

Io di solito aggiungere alla fine del file classe più strettamente correlati. Mi stavo chiedendo cosa fanno gli altri?

risposta

1

Di solito, mi basta usare:

Func<string, string> 

questi giorni

+0

Mentre concordo sul fatto che questo delegato generico prenda molto del lavoro dal dover dichiarare i propri delegati (dal momento che può sistemare molti di loro), in realtà non è una risposta alla sua domanda, quindi non posso andare avanti. –

+0

Giuro che sono l'unica persona che in realtà manda a downvotes le risposte irrilevanti. – jfar

+0

@jfar: Sei consapevole di avere una sorprendente somiglianza con Victor Creed (aka Sabertooth) di X Men Origins: Wolverine? –

2

Io di solito aggiungere al file .cs della classe che implementa la funzione di delegato (a livello di spazio dei nomi). Se ce ne sono molti, l'ho messo in un file separato.

Se so per certo che solo una classe implementerà la funzione delegato, la anniderò nella classe di implementazione.

1

io personalmente aggiungere prima di una definizione di classe strettamente correlati . Faccio comunque un buon uso dei namespace, quindi non inquino!

1

Se è strettamente correlato a appartenere allo stesso file della classe, probabilmente si può giustificare l'annidamento nella classe. Quindi non avrai problemi a ricordare quale file di classe è.

Se non c'è una singola classe che sia una scelta ovvia da annidare, la creazione del file a una riga è probabilmente utile dato che non perderai tempo a cercare di ricordare quale file di classe hai deciso di inserire.

1

Io dichiaro sempre i miei eventi, anche se non ho bisogno di loro in modo che un evento generico sia sufficiente. Il motivo è che il nome della classe dell'evento dà al codice molta più leggibilità e, inoltre, non è raro che l'evento dichiarato sia necessario in fondo alla strada per qualche motivo. Dato che ho una classe di eventi, ho sempre messo il delegato sopra la dichiarazione di classe dell'evento. Sono strettamente accoppiati e se hai bisogno di ascoltare l'evento, avrai bisogno sia dell'evento che del delegato. Non so se questo viola alcune regole di design di alcun tipo, ma questo ha funzionato bene per me.