2010-05-07 12 views
29

un poco inusual ... pero me preguntaba si alguien sabía cómo podría declarar una palabra reservada como variable. Tengo el siguiente código, pero no me gusta el uso del nombre de la variable larga. Sé que podría cambiarle el nombre, pero por el bien de los instintos, me gustaría saber si esto es posible.Usa la palabra reservada larga como nombre de variable en C#

private string lat; 
private string long; 

public string Lat 
{ 
    get 
    { 
     return lat;     
    } 
} 

public string Long 
{ 
    get 
    { 
     return long; 
    } 
} 
+5

considerar el uso de la '' longitude' algo más largo pero más descriptivo y latitude'. – Guffa

+9

Considere no hacer cadenas de latitud y longitud; son lógicamente ángulos, no cuerdas. –

+1

Considere deserializar o automatizar un objeto de respuesta de una API mal diseñada que no consideró palabras reservadas (por ejemplo, response.location.long)! – jkoreska

Respuesta

79

Sí, puede si realmente desee:

private string @long; 

El actual nombre de la variable (según lo informado por la reflexión, etc.) es sólo long; el signo @ le dice al compilador que ignore el hecho de que también es una palabra clave.

Sin embargo, recomendaría encarecidamente no hacerlo.

+5

Estoy de acuerdo. Están reservados por una razón. Hable sobre la claridad del código y el mantenimiento, y mucho menos la resolución de errores, y verá por qué. – ChrisBD

+0

Vi una respuesta publicada en este sitio que contenía un fragmento de código donde * cada * identificador tenía el prefijo @. Bastante un ataque antiaéreo en ese. No lo he visto de vuelta. –

+0

Además, hasta donde yo sé, las directrices C# recomiendan no abreviar palabras, por lo que 'long' debería ser' longitud '. La longitud no es tan larga de una palabra, independientemente. – Sinjai

4

Sí, puedes. Usando el símbolo @.
Esto funcionará, por ejemplo: private string @long;
Hacer esto es altamente recomendable, pero es posible.

1

No es una respuesta que sé como me gustaría dirigir claramente de la utilización de palabras reservadas como nombres de variables, pero si insiste entonces por lo menos utilizar lo siguiente:

private string lat; 
private string @long; 

public string Lat 
{ 
    get 
    { 
     return this.lat;     
    } 
} 

public string Long 
{ 
    get 
    { 
     return this.long; 
    } 
} 
7

Como otros han mencionado, se puede escapar una reservados palabra con '@'.

En su ejemplo que realmente no necesita, me gustaría escribir la propiedad como esta:

private string _long; 
public string Long 
{ 
    get 
    { 
     return _long; 
    } 
} 

y el subrayado y la capital L que se compile.

Pero es una especie de tradición de llamarlos Lat y Lon

0

puedo llegar tarde a la fiesta, pero yo pensaba que iba a tirar en otro lugar en el que el uso de una palabra reservada como nombre de variable es una ¡¡buena idea!!

Estoy escribiendo un control web, donde quiero que una de las propiedades sea "clase" de manera similar a como otros elementos tienen una propiedad de "clase".

Así que, de hecho voy a hacer mi propiedad sea: "@class cadena pública {get {} {}} conjunto"

+3

Los nombres de propiedad por convención están en mayúscula. Además, el nombre estándar para esa propiedad es ['className'] (https://developer.mozilla.org/en-US/docs/Web/API/element.className?redirectlocale=en-US&redirectslug=DOM%2Felement.className) –

Cuestiones relacionadas