Donde está el union?

15/02/2005 - 05:07 por Jorge Eastman | Informe spam
Hola a todos...

Estoy aprendiendo a uttilizar el C# y estoy buscando el union por ciertas
necesidades, pero no lo veo ni dentro del código (se marca en rojo) ni en la
ayuda, cual es la alternativa al union en C#?.

Gracias a todos.

Un saludo

Jorge Eastman

Preguntas similare

Leer las respuestas

#1 Oscar Galvis
15/02/2005 - 16:06 | Informe spam
No se a q t refieres con el union?? el operador logico | ???.. en string
concatenar.. + ???


"Jorge Eastman" wrote in message
news:
Hola a todos...

Estoy aprendiendo a uttilizar el C# y estoy buscando el union por ciertas
necesidades, pero no lo veo ni dentro del código (se marca en rojo) ni en


la
ayuda, cual es la alternativa al union en C#?.

Gracias a todos.

Un saludo

Jorge Eastman



Respuesta Responder a este mensaje
#2 pablo crosio
15/02/2005 - 16:15 | Informe spam
hola!

si te estas refieriendo a la sentencia UNION de un motor de base de datos
pues te diria que no podes implementar directamante esa funcionalidad en c#;
aunque no se si es a eso a lo que te referis

existe el metodo Union en c# pero tiene que ver con los accesos al codigo

IPermission.Union

¿que necesitas realizar?

salu2!

pablo


"Jorge Eastman" escribió:

Hola a todos...

Estoy aprendiendo a uttilizar el C# y estoy buscando el union por ciertas
necesidades, pero no lo veo ni dentro del código (se marca en rojo) ni en la
ayuda, cual es la alternativa al union en C#?.

Gracias a todos.

Un saludo

Jorge Eastman




Respuesta Responder a este mensaje
#3 Carlos García-Carazo
15/02/2005 - 16:51 | Informe spam
Creo que Jorge viene del mundo de C++ y se refiere al operador union:

union DATATYPE // Declare union type
{
char ch;
int i;
long l;
float f;
double d;
} var1;

[tomado del manual de C++]

Yo tampoco encuentro el tipo de datos "union" en C#.
En C# tienes los tipos de referencia y los de valor. Dentro de los de valor
tienes los de enumeración y los de estructura, y dentro de estos está el "struct"
que define el usuario. Pero el "union" no.

Supongo que esto se deberá a que el "union" no es muy orientado a objetos que
digamos ya que se salta por completo las conversiones entre tipos.

Como alternativa se puede usar el tipo "object", ya que puedes asignar cualquier
tipo a "object" y si se trata de un tipo integral (int, float, char...) se realiza una
conversión automática llamada "boxing" que coloca el valor dentro de un objeto
para poder referenciarlo. Para extraer el valor existe el procedimiento inverso
llamado "unboxing" que consiste en un simple casting, y el sistema deshace
la referencia al dato y te devuelve el valor original.

"Oscar Galvis" escribió en el mensaje news:OciM9$
No se a q t refieres con el union?? el operador logico | ???.. en string
concatenar.. + ???


"Jorge Eastman" wrote in message
news:
> Hola a todos...
>
> Estoy aprendiendo a uttilizar el C# y estoy buscando el union por ciertas
> necesidades, pero no lo veo ni dentro del código (se marca en rojo) ni en
la
> ayuda, cual es la alternativa al union en C#?.
>
> Gracias a todos.
>
> Un saludo
>
> Jorge Eastman
>
>
>


Respuesta Responder a este mensaje
#4 Octavio Hernandez
15/02/2005 - 19:58 | Informe spam
Jorge,

Simplemente, NO EXISTE (ni siquiera en el código inseguro).
En general, la Programación Orientada a Objetos propone la herencia y el
polimorfismo como alternativa a las uniones. Si defines una jerarquía de
clases, puedes añadir una nueva clase sin siquiera disponer del código
fuente de las otras. En el caso de las uniones donde se distinguen los casos
mediante el valor de un tag, hay que 'tocar' el código fuente cuando aparece
un nuevo caso...

Slds - Octavio

"Jorge Eastman" escribió en el mensaje
news:
Hola a todos...

Estoy aprendiendo a uttilizar el C# y estoy buscando el union por ciertas
necesidades, pero no lo veo ni dentro del código (se marca en rojo) ni en
la ayuda, cual es la alternativa al union en C#?.

Gracias a todos.

Un saludo

Jorge Eastman



Respuesta Responder a este mensaje
#5 Carlos García-Carazo
18/02/2005 - 09:58 | Informe spam
Pues parece ser que si que hay una forma de hacer Unions en C#.
Consiste en utilizar atributos [StructLayout] combinados con [FieldOffset].
Sacado del newsgroup de c# en inglés encontramos el siguiente ejemplo
(expuesto por Chua Wen Ching):

en C

typedef union ChannelProtocol {
struct {
uint8 data2;
uint8 data1;
} b;
struct {
uint16 data12;
} w;
} CProtocol;

en C#
-
[StructLayout(LayoutKind.Explicit)]
public struct ChannelProtocol
{
[StructLayout(LayoutKind.Explicit)]
public struct Sb
{
[FieldOffset(0)]
public byte data2;
[FieldOffset(1)]
public byte data1;
}

[FieldOffset(0)]
public Sb _Sb;

[StructLayout(LayoutKind.Explicit)]
public struct Sw
{
[FieldOffset(0)]
public ushort data12;
}

[FieldOffset(0)]
public Sw _Sw;
}


"Jorge Eastman" escribió en el mensaje news:
Hola a todos...

Estoy aprendiendo a uttilizar el C# y estoy buscando el union por ciertas
necesidades, pero no lo veo ni dentro del código (se marca en rojo) ni en la
ayuda, cual es la alternativa al union en C#?.

Gracias a todos.

Un saludo

Jorge Eastman



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