Esto me molesta mucho y me parece que escribo errores estúpidos cuando se combina con Intellisense (VS 2008 Pro):¿Cómo desactivo el "esto" implícito en C#?
class Foo
{
public Foo(bool isAction)
{
this.IsAction = IsAction;
}
public bool IsAction { get; private set; }
}
¿Viste eso? Ciertamente no lo hice hasta que IsAction nunca cambió, causando errores.
Intellisense alguna manera convertidos "isA<tab>
" a "IsAction" para mí lo que significa la propiedad Foo.IsAction
es siempre falsa independientemente de la entrada del constructor. Sólo brillante.
Tengo que decir que odio particularmente el "implícito this
" (no sé si tiene un nombre formal) y me gustaría desactivarlo para que nunca lo asuma. ¿Hay alguna manera de hacer esto? Esto también se aplica al llamar a métodos estáticos de la misma clase.
Alternativamente, ¿qué convenciones de nomenclatura evitan este pequeño problema? La propiedad debe seguir siendo "IsAction", por lo que tiene que ser una convención sobre el nombre del parámetro del constructor. Por extraño que parezca, si lo nombro con la ortografía coincidente exacta, entonces this.IsAction = IsAction;
funciona correctamente.
El problema no son los idiomas sensibles a las mayúsculas y minúsculas sino la implícita de this
. Ahora que lo pienso, esto también es más una pregunta de VS 2008 Pro que una C#. Puedo vivir con código ya escrito sin la this
pero no quiero escribir nuevo código sin ella, que significa decirle En
respuesta de noldorin me hizo pensar.
Ahora que lo pienso, esto también es más una pregunta de VS 2008 que una C#. Puedo vivir con el código ya escrito sin el this
(aunque sí lo cambio si estoy allí rechinando) pero no quiero escribir un código nuevo sin él, lo que significa decirle a Intellisense que deje de hacerlo. ¿Puedo decirle a Intellisense que lo apague?
Esto no es un problema de implícita. Incluso si pudieras apagarlo (creo que no puedes), estoy seguro de que lo volverías a encender en unos minutos. –
Estoy bastante seguro de que no lo haría. ¿He mencionado que * lo odio *? :) –
Me encantaría ver su código sin él, cada llamada a un método privado o protegido precedido por "esto" ... Las buenas clases contienen muchos pequeños métodos refactorizados y expresivos para lograr su objetivo. Usted estaría lleno de "esto" en todo el lugar. –