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

#6 Javier
11/07/2005 - 14:21 | Informe spam
Gracias a to2, me fue de gran utilidad vuestra discusión!
Salu2

"Octavio Hernandez" wrote:

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
#7 Kravek
14/07/2005 - 17:53 | Informe spam
Sólo lo uso para rellenar los valroes de un objeto, por ejemplo si estoy
rellenando un objeto de Entidad con 5, 10, 15... campos creo que es MUY útil
y ahíno creo que complique salvo que requieras hacer cálculos complejos de
más de 1 línea por dato.

Para usar el objeto "Witheado" en la parte derecha hay que tenerlos muy bien
puestos porque ahí sí que complica muxo la legibilidad, si sólo se usa en la
parte Izquierda no lo creo ;)

"Miguel Angel Campos" <SPAMmacampos ARRUBA .idesarrollaSPAM.com> escribió en
el mensaje news:
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
#8 Pedro Luna Montalvo, [MVP VB.NET]
16/07/2005 - 01:39 | Informe spam
Solo como comentario adicional, la sentencia With no es parte del lenguaje
IL, es decir que si un lenguaje lo implementa, deberá ser el propio
compilador quien resuelva esta sentencia.

Al compilar un programa VB.NET, las sentencias With son traducidas a
variables intermedias, asi:

With ObjetoRaiz.Objeto
.Propiedad1 = 1
.Propiedad2 = 2
End With

se traduce a:

Dim tmp1 As TipoDato
tmp1 = ObjetoRaiz.Objeto
tmp1.Propiedad1 = 1
tmp1.Propiedad2 = 2

Ya que C# no implementa With, la solucion de Octavio daria el mismo
resultado.


Saludos,
Pedro Luna, [MVP VB.NET]
Gye, Ecu

"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
#9 Tristan
16/07/2005 - 10:59 | Informe spam
Sólo lo uso para rellenar los valroes de un objeto, por ejemplo si estoy
rellenando un objeto de Entidad con 5, 10, 15... campos creo que es MUY
útil



Lo que no acabo de ver es lo de que es MUY útil.

Yo apenas aprecio diferencia entre:

With Entidad
.Campo1 = valor1
.Campo2 = valor2
...
end with

Y:

{ TipoEntidad o = Entidad
o.Campo1 = valor1;
o.Campo1 = valor1;
}

Me parece que la diferencia es mínima, y no creo que justifique complicar el
lenguaje.

Además, personalmente prefiero la solución con la variable temporal. A
cambio de escribir un caracter más por campo, gano una variable temporal
para consultar fácilmente sus valores.

Juan Carlos Badiola
MVP - C#
Respuesta Responder a este mensaje
#10 Tristan
16/07/2005 - 20:16 | Informe spam
Por cierto, por si alguno no lo conoce, las variables definidas dentro de un
bloque, son locales al bloque,, es decir en el ejemplo que he puesto o solo
existe dentro del bloque entre corchetes, muy similar al with.

Juan Carlos Badiola
MVP - C#
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida