Instrucción With En C#

08/07/2005 - 22:28 por Javier | Informe spam
Hola,
alguno sabe si existe algo similar en C# ya que tengo que hacer referencia a
un objeto muchas veces y estaría bueno hacer algo por el estilo
With (objeto)
{
.Propiedad = ...
}

Gracias de ante mano
Buen fin de semana !

Preguntas similare

Leer las respuestas

#1 Octavio Hernandez
08/07/2005 - 23:03 | Informe spam
Javier,

*NO* existe equivalente de With en C#. Utiliza una variable intermedia:

Button botónSalida = FormPrincipal.BotónSalida; // variable de trabajo
botónSalida.Enabled = true;
// .. más trabajo con botónSalida...

Slds - Octavio

"Javier" escribió en el mensaje
news:
Hola,
alguno sabe si existe algo similar en C# ya que tengo que hacer referencia
a
un objeto muchas veces y estaría bueno hacer algo por el estilo
With (objeto)
{
.Propiedad = ...
}

Gracias de ante mano
Buen fin de semana !
Respuesta Responder a este mensaje
#2 Tristan
09/07/2005 - 02:54 | Informe spam
En efecto, no existe equivalente a with en c#.

Hace tiempo leí una conversación del propio Hejlsberg hablando de las
razones por las qué nunca pensaba incluir una sentencia como With en C#.

Por un lado complica el compilador. Además, posiblemente haga más difícil
seguir el código.


En la línea de tu ejemplo:

With (objeto)
{
.Propiedad = ...
}




La traducción más parecida a C# sería:

{ Tipo o = objeto
o.Propiedad = ...
...
}

Es decir, tan solo hace falta teclear un carácter más.

Yo vengo de Delphi, y estaba acostumbrado a usar los With. A menudo tenía
dificultades a la hora depurar o incluso comprender el código en las
regiones en que usaba With. A mi juicio, estos problemas mejoran utilizando
una variable local. Me he acotumbrado tanto a utilizarlas que nunca utilizo
with ni siquiera en vb.net. Pero sobre todo, se consigue una ventaja
importante, se simplifica el compilador. ¿Si algo puede hacer lo mismo de
forma sencilla para que utilizar una forma más complicada?.

Pero por supuesto, es un tema discutible. Una cuestión de diseño.

Lo que sí me parece claramente peor, es la solución de Pascal, en la que el
with se resuelve solo a partir del contexto, sin necesidad del punto. En ese
caso, además de complicar todavía más el compilador, se añade bastante grado
de ambigüedad que puede hacer difícil seguir el código.

Juan Carlos Badiola
MVP - C#
Respuesta Responder a este mensaje
#3 Octavio Hernandez
09/07/2005 - 19:59 | Informe spam
¿Qué tal, Tristán?

Como sabes, yo también vengo de Turbo Pascal/Delphi, y el with nunca me
gustó...

Salu2 - Octavio
Respuesta Responder a este mensaje
#4 Guillermo guille
10/07/2005 - 19:00 | Informe spam
es que no sabéis apreciarlo ;-)

Pero es como todo, hay que saber usarlo, sino... al final es un caos.

Nos vemos.
Guillermo
Microsoft VB MVP desde 1997
Mentor Asociado de Solid Quality Learning Iberoamericana
Te invito a mi sitio dedicado al VB y más...
http://www.elguille.info/
http://www.mundoprogramacion.com/


"Octavio Hernandez" wrote in message
news:u55G5$
¿Qué tal, Tristán?

Como sabes, yo también vengo de Turbo Pascal/Delphi, y el with nunca me
gustó...

Salu2 - Octavio


Respuesta Responder a este mensaje
#5 Miguel Angel Campos
11/07/2005 - 11:14 | Informe spam
Hola a todos,

yo tambien he trabajado mucho con Delphi y lo he echado de menos en c#.
Puede que complique el compilador pero es un recurso útil en algunos casos.
Lo que está claro es que no se pueden definir un bloque with que contiene
mas de 20 líneas, puesto que se pierde por completo el contexto.

Con respecto al comentario de Tristan, tiene toda la razón, al no tener que
indicar el punto en Delphi se perdía muchas veces el norte acerca de a que
se hacía referencia, e incluso se confundía con variables locales definidas.
La implementación de VB es mucho mejor mediante el punto.

Son distintos puntos de vista, y es como todo, simplemente hay que darle un
buen uso.

Un Saludo,

Miguel Angel Campos
MCAD.NET

"Guillermo 'guille'" escribió en el mensaje
news:%
es que no sabéis apreciarlo ;-)

Pero es como todo, hay que saber usarlo, sino... al final es un caos.

Nos vemos.
Guillermo
Microsoft VB MVP desde 1997
Mentor Asociado de Solid Quality Learning Iberoamericana
Te invito a mi sitio dedicado al VB y más...
http://www.elguille.info/
http://www.mundoprogramacion.com/


"Octavio Hernandez" wrote in message
news:u55G5$
¿Qué tal, Tristán?

Como sabes, yo también vengo de Turbo Pascal/Delphi, y el with nunca me
gustó...

Salu2 - Octavio






Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida