2012-01-20 17 views
5

Abbiamo il seguente ciclo nel codice:C# variabili per parole chiave come

foreach (var event in events) 
{ 
... 
{ 

di decoro non possiamo nome "evento" variabile, in quanto è una parola chiave. Qual è il modo più appropriato in questo tipo di casi: usare @ prefisso (@event) o usare un altro nome come "currentEvent"?

+1

Io personalmente lo rifatterò per essere più descrittivo, ma se sto facendo qualcosa come i binding P/Invoke e un parametro è chiamato 'event', Lo renderò '@ event' per coerenza con il metodo originale. –

risposta

15

Utilizzare decisamente un altro nome.

Le variabili di parole chiave sono davvero fantastiche funzionalità di C# ma dovrebbero essere utilizzate per l'interoperabilità.

3

Poiché il prefisso @ è così raro, potrebbe confondere altri sviluppatori. Ti consiglierei di usare un altro nome di variabile qui.

È diverso quando il nome fa parte dell'interfaccia pubblica. In tal caso, si desidera utilizzare il nome corretto, anche se si tratta di una parola chiave. Tuttavia, se lo fai rendi difficile per le persone che vogliono usare la tua interfaccia, dato che devono usare @ ovunque.

1

Personalmente, consiglierei di nominarlo in base al suo contesto e a ciò che rappresenta. Se rappresenta un evento che deve essere eseguito, probabilmente lo chiamerei qualcosa come executableEvent, ad esempio.

In alternativa, se si utilizza solo localmente per richiamare ogni evento, ad esempio, potrebbe essere accettabile fornirgli una versione abbreviata del nome, ad esempio evt. Normalmente voterei contro questo tipo di convenzione di denominazione, ma se è solo temporanea e gli altri locali potrebbero ritenerla valida.

1

Personalmente non mi piace usare @ e _ come prefisso solo per poter usare una parola chiave. Credo che nella maggior parte dei casi è possibile rinominarlo, o:

foreach (var uiEvent in uiEvents) 
{ 
... 
{ 

(più specifico)

o

foreach (var evt in events) 
{ 
... 
{ 

(una sorta di stenografia)

+0

Sì, evita "@". È usato come prefisso altrove e potrebbe confondere le persone. Me; Ometto una vocale: "foreach (var evnt in events)" – BaBu

5

vorrei solito rinculo dall'uso del prefisso @. (A volte lo uso per denominare il primo parametro in un metodo di estensione @this, ma anche questo è piuttosto raro.)

Vedi se riesci a pensare a un altro modo di descrivere l'evento. Ad esempio, è un particolare tipo dell'evento ?

1

userei e, _event o currentEvent

0

ho davvero vi consiglio di non utilizzare @ quindi bisogna scegliere un altro nome. Come alcuni hanno già detto, puoi digitare il tuo nome per un tipo più specifico di evento

Problemi correlati