Está en la página 1de 33

PRIMER PARCIAL

¿Qué es precondición y postcondición? Según booch :

La precondición es una invariante asumida por la operación


La postcondición es una invariante satisfecha por la operación

 ¿Qué es una Clase?


Conjunto de objetos que comparten una estructura común y un comportamiento
común.

 ¿Que es un objeto?
Un objeto tiene un tiempo de vida y un espacio en la memoria. Los objetos se
construyen a partir de las clases.

 ¿Cuáles son las métricas que definen una clase bien diseñada?

1- Bajo acoplamiento  significa que la modificación debe tener bajo impacto


en las demás clases
2- Alta Cohesión  refiere a que cada clase debe tener una sola funcionalidad
bien definida
3- Suficiencia Por suficiente quiere decirse que la clase o módulo captura
suficientes características de la abstracción como para permitir una
interacción significativa y eficiente.
4- Ser Primitiva Dentro del proceso de desarrollo con cada iteración las
clases no deberían sufrir ninguna modificación
5- compleción Una clase o módulo completo es aquel cuya interfaz es
suficientemente general para ser utilizable de forma común por cualquier
cliente

 ¿Cuáles son los principios del modelo de objetos?

Abstracción : Denota las características esenciales de un objeto que lo distinguen de


todos los demás tipos de objeto y proporciona así fronteras conceptuales nítidamente
definidas respecto a la perspectiva del observador

Encapsulamiento:
La abstracción y el encapsulamiento son conceptos complementarios: la abstracción se
centra en el comportamiento observable de un objeto, mientras el encapsulamiento se
centra en la implementación que da lugar a este comportamiento. El encapsulamiento
se consigue a menudo mediante la ocultación de información, que es el proceso de
ocultar todos los secretos de un objeto que no contribuyen a sus características
esenciales; típicamente, la estructura de un objeto está oculta, así como la implantación
de sus métodos.
El encapsulamiento proporciona barreras explícitas entre abstracciones diferentes y por
tanto conduce a una clara separación de intereses.
Modularidad :

La modularidad es la propiedad que tiene un sistema que ha sido descompuesto en un conjunto


de módulos cohesivos y débilmente acoplados.

Jerarquía :

La jerarquía es una clasificación u ordenación de abstracciones.

Tipos :

Los tipos son la implementación práctica de las clases de objetos, lo que implica que objetos de
diferentes tipos no pueden ser intercambiados o, en el mejor de los casos, solo pueden ser
intercambiados de manera muy limitada.

La noción de tipos estrictos se refiere a la consistencia de tipos, mientras que la asignación


estática de tipos –también conocida como ligadura estática o ligadura temprana– se refiere al
momento en el que los nombres se ligan con sus tipos. La ligadura estática significa que se
fijan los tipos de todas las variables y expresiones en tiempo de ‘compilación; la ligadura
dinámica (también llamada ligadura tardía) significa que los tipos de las variables y
expresiones no se conocen hasta el tiempo de ejecución.

Concurrencia :
La concurrencia es la propiedad que distingue un objeto activo de uno que no está activo.

Persistencia:

La persistencia es la propiedad de un objeto mediante la cual su existencia perdura en el


tiempo y/o el espacio.

 ¿ Puedo tener un constructor dentro de una clase abstracta?

Si, porque aunque no pueda instanciar una clase abstracta, lo puedo utilizar desde las clases
herederas

 ¿ Que es un constructor?

Un constructor es una operación dentro de una clase que se utiliza establecer el estado inicial
de un objeto pero jamás crea el objeto

 ¿Qué es un destructor?

Un destructor es una operación que libera espacio de memoria de todos los elementos que
utilizó este objeto.

 ¿ Como se conoce la estructura de la herencia?

Se le conoce como estructura de generalización y especialización.

 ¿ qué diferencia hay entre agregación y composición?


Agregación : Las relaciones en una composición son opcionales el ciclo de vida de los
objetos NO están íntimamente ligados

Composición : Las relaciones en una composición son requeridas, hay una contención
física y los ciclos de vida están íntimamente ligados

 ¿ a que se le llama boxing y unboxing? :


Boxing es cuándo se está esperando un objeto y cuando llamo a un método y le paso
un objeto más grande en una referencia que espera un elemento más chico, no lleva
paréntesis
El unboxing es cuando se esta esperando un objeto y cuando llamo a un método le
paso un objeto mas chico lo debo especificar con paréntesis.

 ¿ cuales son los 3 tipos de actores que pueden ser los objetos? :
Cliente : puede consumir servicios de objetos y no provee servicios de otros objetos
Servidor : Solo proveen servicio pero no pueden consumirlos
Agente : Consumen y proveen servicios.

 ¿ para que sea un objeto que características debe tener? :


Identidad  Es lo que lo hace único en un determinado entorno
Comportamiento Son las acciones (métodos) y reacciones (eventos) que el objeto
puede hacer
Estado  Es el valor de los atributos en un tiempo determinado.

 ¿ a que define booch como una clase de concurrencia?


Es una clase que tiene comportamiento (Métodos) pero no tiene estado (Atributos).

 ¿ qué diferencia hay entre un método virtual y un método abstracto?


En el método abstracto estoy obligado a implementarse en las clases derivadas en
cambio en el método virtual no ya que te da la oportunidad de poderlo implementar
en otras clases que no son las derivadas.

 ¿ Que es una clase sellada y cual es el modificador que lo define como sellada?

Una clase sellada es un tipo de clase el cual se puede instanciar pero no se puede heredar y
se denota con la palabra sealed

La clase abstracta: se puede heredar, pero no se puede instanciar abstract

La clase concreta: Se puede instanciar y heredar

 ¿ Cuáles son los tipos de visibilidad y que función cumple cada uno?

Publico : Cualquiera puede acceder a lo que esté definido


Privado : Solo se puede acceder o ser accedido mediante la propia clase
Protegido: Lo puede acceder la clase y la herencia de esa clase.
 ¿ si yo digo que una clase abstracta tiene la obligación de tener un, método abstracto
esa afirmación es correcta?
NO ya que si ese método no lo necesito no es necesario ponerlo.

 ¿ qué es una operación de una clase?


Es el mecanismo de control que proporciona el encapsulamiento

 ¿ qué es un dato miembro?


Son las variables NO publicas de una clase que son después accedidas por el
encapsulamiento
 ¿ qué es el polimorfismo?
Es la implementación de un método en otras clases y se da en la herencia
 ¿ qué tipos de herencia hemos visto y cuales herencia soportan los lenguajes vistos?
Simple (solamente se puede heredar de una clase) y múltiple (se hereda 2 o mas
clases)

Los lenguajes administrados solamente permiten la herencia simple.

 ¿Qué es mantenimiento, evolución y conservación de software?

Mantenimiento es cuando se corrigen errores

Evolución cuando se responde a requerimientos que cambian

Conservación es cuando se siguen empleando medios extraordinarios para mantener en


operación un elemento de software anticuado y decadente

 La capacidad de responder a los cambios de requerimiento dentro de los grandes


sistemas se conoce como :
Evolución

 Acerca de la composición podemos afirmar :

hay una contención física y los ciclos de vida están íntimamente ligados

 ¿Cuál es el mecanismo que permite ocultar los detalles de implementación de una


clase?

Encapsulamiento

 Según Booch, clasificar objetos a partir de sus elementos específicos se le conoce como
:
Los tres enfoques de la clasificación son la categorización clásica (clasificación por
propiedades),
agrupamiento conceptual (clasificación por conceptos) y teoría de prototipos
(clasificación por asociación con un prototipo).
 Indique las opciones que correspondan a las métricas que indican que una clase este
bien diseñada
o semántica funcional
o Sintaxis
o Suficiencia
o Primitivo
o Bajo Acoplamiento

 Acerca de las precondiciones


o Es una invariante asumida por la operación
Acerca de las postcondiciones
o Es una invariante satisfecha por la operación

 Enumere y describa los 3 elementos que debe poseer un objeto :


o Identidad : Es lo que hace único a un objeto en un determinado Entorno
o Estado : Son los valores que poseen los atributos en un momento determinado
o Comportamiento : Son las acciones (métodos) y reacciones (eventos) que el
objeto puede hacer
 La concurrencia es la capacidad que posee un objeto de trascender el tiempo y espacio
o Falso
 Acerca de la ligadura tardía :
o Se lo conoce en tiempo de ejecución
 Funciones de un constructor :
o Establecer el valor inicial de un objeto
o Construir un objeto
o Construir un objeto y establecer el valor inicial
o Todas las Anteriores
o Ninguna de las Anteriores
 Acerca del Polimorfismo :
o Se produce al heredar un método e implementarlo en las clases derivadas
o Se produce dentro de una clase el metodo tiene el mismo nombre y diferente
firma
o Un método polimórfico no se puede sobrecargar
o Todas las afirmaciones son correctas
o Ninguna de las afirmaciones son correctas
 Acerca de las clases Selladas :
o Se definen con la palabra “Closed”
o No permiten tener instancias de objeto
o Establecen un fin de la jerarquía de herencia
o Todas son correctas
o Ninguna son correctas
 Una clase que no permite tener instancias se la conoce como
o Abstracta
 ¿Qué semántica corresponde a una agregación?
o Parte de
 Seleccione las afirmaciones que correspondan a un método abstracto
o Se define mediante con la palabra reservada “virtual”
o Me permite reimplementarlo en las clases derivadas en caso de creerlo
conveniente
o Me obliga a reimplementarlo en las clases derivadas
o Todas las anteriores son correctas
o Ninguna de las anteriores son correctas
 La capacidad de proveer servicios es una característica de los objetos :
o Servidores
o Agentes
o Clientes
o Todas las Anteriores
o Ninguna de las Anteriores
 Los lenguajes administrados permiten herencia multiple?
o Falso
SEGUNDO PARCIAL

El framework se divide en 2 partes :

 CLR : Comon Language Runtime (Entorno De Ejecución Intermedia)

Responsabilidades ( Son 7) :

o Compilacion JIT (Just In Time ) :


Significa que cuando nosotros hacemos una aplicacion de .NET (cuando se
genera el .EXE y las DLL) No estamos escribiendo un binario va a estar
escribiendo un archivo en otro lenguaje (MSIL) y cada vez que ejecutamos ese
archivo (le hacemos doble click ) el FrameWork detecta ese tipo de archivo y
ejecuta la compilación JIT.

o Capacidad de trabajar en MultiHilo (MultiThreat) :


Capacidad de tener mas de un programa en ejecución al mismo tiempo

o Manejo de Memoria : Es el que controla la memoria para evitar la fuga de


punteros, cada vez que creamos un objeto, el framework reserva un espacio de
memoria y genera un puntero a ese objeto nuevo, (o sea que en principio ese
objeto tendría 2 punteros, el que referenciamos para instancia y el que generó
el framework). Cuando modificamos la referencia del puntero : es decir P.E

Objeto unObjeto = new objeto (); // generación del objeto


unObjeto = new objeto (); // cambio de dirección del puntero

El Framework detecta (al darse cuenta que ese objeto perdió una de sus
referencias de puntero) y lo marca como “Disposable”

Entonces cada vez que “pasemos” el Garbage Collector ( para pasar el garbage
collector en C# usamos el método “CG.Collect(); “ , el framework detectará
esos objetos
marcados como “Disposable” y los borrará.

o TypeChecker : es el validador de tipos y permite que tengamos un lenguaje de


programación altamente tipado
o MarshallerCOM : nos da todo los servicios de interoperatividad entre otros
componentes COM y además nos permite generar código unSafe ( por ejemplo
código C++ para ir a mas bajo nivel)
o Políticas De Seguridad : Todas las aplicaciones que se realicen pasarán por el
framework para validad si el código es o no seguro
o Manejo De excepciones : el CLR maneja las excepciones que van surgiendo a
medida que ejecutamos los programas
 BCL (Biblioteca de Clase Base ) :

Se encarga de proveer todos los elementos para poder trabajar además permite extender ( lo
puedes heredar para hacer objetos mas específicos). Y se encuentran agrupados en
Namespaces.

Cuando ejecutamos un programa el framework va a buscar que tengas la biblioteca de clases


para la ejecución de ese programa dentro de tu local, en caso de que no esté lo buscará en GAC
(GAC es un repositorio de assemblies donde hay un montón de DLL), en caso de que no este la
esa DLL se generará una excepción.

En general cuando compilamos ( es decir cuando creamos el .EXE) se generará un Assemblies,


que es? Es la mínima porción de ejecución de .NET, el assemblie se divide en 2 partes:

 MSIL
 METADATOS (versionado, recursos que utiliza, target)

Elementos para desarrolladores de lenguaje de programacion

CTS : Especificacion común de tipos : va dentro del CLS, se trata de especificaciones de tipos de
datos
CLS : comon languaje especification (especificacione de lenguaje común )  son “Las Reglas
del Juego” para generar código en otros lenguajes, hay mas de 200 lenguajes de programación
que trabajan con .NET, pero todos al finalizarlos se “guardan” en una extensión assemblie

LINQ :

Es una estructura que nos permite realizar búsquedas, ordenamientos, uniones de listas de
objetos, etc y se implementa en cualquier clase,

Para que funcione necesitamos agregarle :

Su estructura es similar a una sentencia de SQL, en la siguiente imagen se muestra una


implementación:
Se tiene una clase llamada persona con los atributos Nombre y Edad :

Fig 1

Se instancia en el form una lista de objetos de esa clase :

Fig 2

Se genera una estructura del tipo LinQ para realizar el filtrado de los objetos de esa lista que
poseen cierto estado, en este caso puntual se requiere que se filtren las personas que tienen
edades mayores a 25 años ( según la lista de la Fig 2. Debería tener a “Maria” y a “Ana”)

Fig 3.
Tal como lo habíamos visto anteriormente la lista 2 que generamos retorna los valores
previstos :

En definitiva la estructura de LinQ es muy fácil de implementar , acá va un paso a paso de


como implementarla :

1- Se requiere definir una variable usando la palabra reservada VAR


2- En esta variable se va a almacenar nuestra “consulta” la cual generaremos con la

siguiente sintaxis
Usamos “From” + elemento
individual + IN + lista de
elementos
Usamos “Where” para la condición

El “Select” se utiliza para seleccionar o


retornar lo que necesito, en este caso es
TODO el objeto entero

Sacando extremos (MIN y MAX) : Acá establezco la condición de filtrado

Uso el método FirstOrDefault() para traer solo


un elemento

POR TANTO LA VARIABLE SE CONVIERTE DE


AHORA EN MAS EN UN OBJETO TIPO PERSONA
Y NO EN UNA LISTA
INTERFACES
Establecen contratos y Puedo definir :

 Métodos.
 Operaciones (geter y setter) .  las Operaciones también se llaman Propiedades
 Eventos

Todo lo que está declarado dentro de la interfaz es público, yo solamente puedo declarar un
método mas NO implementarlo, y las puedo ir implementando en las clases, funciona “algo
muy parecido a una clase abstracta” todo lo que declaro en la interfaz a momento de usarla lo
tengo que implementar

las interfaces son declarativas y solo se pueden declarar métodos operaciones y eventos. Están
vinculadas estrictamente al comportamiento

Las interfaces SI se pueden heredar para poder crear interfaces más específicas.

Implementando una interfaz :

1.- En el diseñador de clases creamos la interfaz

Fig 1

2.- Dentro de la interfaz definimos las propiedades (métodos, Eventos y Operaciones),


recordemos que NO debe ir la visibilidad en las propiedades y que los métodos son solo
declarativos NO se pueden implementar dentro de la interfaz :

Fig 2
3.- cuando quiero Implementar la interfaz en cualquier clase puedo o arrastrar como herencia
esa interfaz o simplemente con “:” al lado del nombre de la clase la puedo llamar

Fig 3

4.- Me lo va a marcar como un error porque no se ha “Implementado” el método de esa


interfaz para hacerlo solo basta con pulsar el clic derecho acciones Rápidas  Implementar
Interfaz :

Fig 4

(Cuando se utiliza una interfaz no es necesario usar el override a menos que la interfaz se haya
implementado en la clase “Padre” y quiera traerla a la clase hijo)

5.- Se va a Agregar el/los métodos correspondientes a la interfaz, borramos y modificamos su


contenido a nuestra conveniencia .
Utilizando Interfaces Existentes en el framework :

En la cursada vimos 3 interfaces :

1- IComparable
2- IClonable
3- IDisposable

interfaz Icomparable :

Sirve para comparar una lista de objetos, al implementarla podemos utilizar el método

Sort( ) Para implementarla seguimos los pasos de la Fig 3 y la Fig 4 descritos anteriormente
con estas salvedades :

Cuando se llame a la interfaz se le pase por < > la lista de objetos de esa clase a comparar es
decir :

Una vez implementada la interfaz cuando hacemos el paso 5 que es

“5.- Se va a Agregar el/los métodos correspondientes a la interfaz, borramos y modificamos


su contenido a nuestra conveniencia “
Hacemos las siguientes modificaciones :

1.- validamos que el objeto a comparar no sea nulo, en caso de serlo que devuelva “1” (
Verificar que lo que reciba por parámetros en esa función sea el tipo de objeto a comparar,
esto se hace solo cuando ponemos <Persona> o la clase que queremos en la declaración de la
intefaz)

2.- sino se Retorna la recursividad con el atributo que quiero comparar ( SI LE PONGO * -1 lo
ordena al revés)
Interfaz IClonable :

Sirve para clonar un objeto, Su método principal es el Clone() , para clonar tengo que clonar
todos sus atributos y escribirlos uno por uno en este método para evitar esto existe un método
mas performante que se llama MemberWiseClone( );

Fig 1

Para utilizarlo una vez realizado los pasos que veníamos realizando para agregar una interfaz a
la clase y una vez realizado el paso de la Fig 1 para llamar al método de esta interfaz lo
realizamos de la siguiente manera :

Fig 2

Ojo esta clonación ES SUPERFICIAL y NO profunda , Es decir NO CLONA A LOS OBJETOS


EMBEBIDOS
IDisposable :
Sirve para que justo después de que un objeto quedo marcado como “Disposable” es decir
que se perdió el puntero raíz (Fuga de puntero), Se borre automáticamente ese objeto

Su Método principal es Dispose()

Fig 1

Para implementarlo necesitamos que hacer una serie de pasos:

1.- Validamos si estamos desechando es decir si el objeto esta marcado como disposable para
esto creo un booleano (fuera del metodo) y pregunto Fig 2

2.- Cerramos todos los objetos No administrados, pero además vamos a usar el método del
Garbage Collector “SuppressFinalize(this)” Esto quita el constructor al objeto para que no
haya forma de que el constructor lo borre

Fig 2
Para implementarlo :

1.- usamos la Palabra Reservada “USING”

Fig 3
Excepciones
Las Excepciones son acciones que se ejeutan en un método,

Para crear una Excepción seguimos los siguientes pasos :

1.- Primero Creamos una “Clase” que herede de Exception

Fig 1

2.- Escribimos Public Override como para llamar a algún método de la clase “Exception” y
seleccionamos message

Fig 2
3.- luego del ” =>” agregamos el string a mostrar :

Fig 3

4.- Para llamar al método :

Buscamos y generamos la condición de ejecución del evento, en este caso es en el getter si se


cumple esa condición creamos una instancia nueva de exception y la tiramos con el throw

Fig 4

5.- Ahora para llamar a ese Evento necesitamos hacer el try catch :

Fig 5
Eventos
Los eventos son mecanismos utilizados para notificar a los objetos interesados cuando ocurre
algún tipo de acción o cambio en otro objeto. Un evento puede ser considerado como una
señal que indica que algo ha sucedido. Y se definen usando delegados

Pasos para crear un Evento :

1.- Vamos al diagrama de clases y creamos un delegado :

Fig 1

2.- Dentro del evento ya va a estar creado el delegado y lo que voy a hacer es cambiar el tipo
de dato de entrada

Fig 2
3.- Después voy a la clase que yo quiera tener el evento , y declaro el evento, así como uno
declara los atributos y los métodos también se crean eventos :

Fig 3

Los objetos eventos creados en la Fig 3 son como los eventos del button:

Fig 4
4.- Después de declararlas las “Invoco” en la misma clase donde las declaré, dentro de un
método, :

Si el evento no es nulo entonces se implementa


el evento

Fig 5
5.- Voy al Form y primero instancio un objeto nuevo de la clase que implementé el Evento :
( “Esto igual no es nada particular al evento, es solo que necesitamos para que se ejecute el evento que
esa clase esté instanciada, como normalmente sucede si queremos por ejemplo ejecutar un método “)

Fig 6

Y luego dentro del constructor como se aprecia en la Fig 6 asigno a las instancias que había
creado en la clase ( Fig 3 )

Fig 7

Al asignarlas Fig 7 y con el “ += “ si le damos “TAB” automáticamente se creará el


“UnaPersona_Si”
Así como también el” Método” de ese evento :

Fig 8

Dentro del Método “UnaPersona_Si” borramos el throw que viene por defectoy agrego el
MessageBox con la variable string “mensaje”

Fig 9

Esa variable “Mensaje “ corresponde con la declarada en la Fig 2

6.- Por ultimo voy al evento del elemento disparador, en este caso es el evento Click de uno de
los botones del form, cada vez que se presione el botón va a ejecutar el método :
Preguntas
¿ Que diferencia hay entre un programa y un proceso?

- El proceso es el programa en ejecución

¿ Que es un espacio de nombres?

- Es una estructura utilizada para organizar y agrupar de manera lógica y jerárquica


un conjunto de declaraciones de tipos, como clases, estructuras, interfaces,
enumeraciones y delegados.
Evita ambigüedades.

Palabras reservadas de Linq

- From (Correcta)
- Where (Correcta)
- Isnull (incorrecta)
- Select (Correcta)

Para capturar un mismo tipo de excepción en 2 catch diferentes se debe utilizar la instrucción

- When

Dentro del bloque de manejo de excepciones, el bloque “Finally” es obligatiorio

- Falso

Para Desarrollar un programa en .NET que se intercambie por la red utilizando un protocolo
orientado a la conexión se utilizan los objetos :

- TcpListener
- TcpClient

Elementos que pueden declararse dentro de una interfaz :

-Eventos

-Metodos

-Operaciones ( a las operaciones también se les llama Propiedades )

Para utilizar el método Sort de una lista genérica, la clase debe tener implementada la
interfaz

- Icomparable

Al clonar un objeto y también a sus objetos embebidos se le conoce como :

-Clonación Profunda

El método que permite clonar el estado de un objeto es MemberWiseClone:

- Verdadero

Una interfaz No puede heredar Otra intefaz

- Falso

Los elementos declarados dentro de una interfaz no deben llevar visibilidad en su


declaración

- Verdadero

Responsabilidades del CLR

- Compilacion JIT
- -Manejo De memoria
- Capacidad de trabajar en MultiHilo (MultiThreat)
- TypeChecker
- MarshallCOM
- Manejo De excepciones
- Políticas de seguridad

¿ Cuales son los tipos de clonación que existen?

- Clonación Superficial  solamente clona el objeto


- Clonación profunda  Clona el objeto y también a sus objetos embebidos

¿ para que sirve un constructor compartido?

- Establece el estado inicial de los atributos compartidos


¿ Cual es la estructura de un bloque try – catch :

Nota : estas estructuras siempre van implementadas dentro de métodos

Si yo quisiera generar una excepción del mismo tipo (idénticas) tener 2 catch con la misma
excepción pero con condiciones diferentes se deberá usar la palabra reservada when por ejemplo:

USO DEL WHEN


¿ Como se divide un Assemblie?

- MSIL
- METADATA  (versionado, recursos que utiliza, target)

Si yo quiero utilizar un objeto orientado a la conexión para conectarme a una máquina


destino, ¿ que objeto utilizo?

- Debería utilizar el objeto TCPClient y TPCListener

El UDP  Es como mandar un mensaje de texto, no le importa si el destino lo recibió o no

El TCP  Es como una llamada telefónica, necesita que el destino atienda, con un TCP client te
conectas (pedis conexión) y del otro lado la tiene que aceptar TCP Listener y una vez que lo
acepta recién ahí se puede dialogar

Si yo quiero utilizar una estructura USING ( interfaz) para instanciar un objeto y que se libere
la memoria rápido, que interfaz tengo que utilizar?

- Idisposable

¿ para que me sirve la clase IPadress?

- Sirve para parsear direcciones IP

Siempre el parse (NO IMPORTA DEL TIPO DE DATO QUE ESTEMOS HABLANDO) recibe un string
y lo convierte en ese tipo de dato, de otra manera estaría casteando.

Acerca de las Interfaces Podemos Afirmar :

o Sirven para emular Herencia Múltiple


o Son únicamente Declarativas
o Permite discriminar la visibilidad en su declaración
o Todas Las anteriores son correctas
o Ninguna de las anteriores Son correctas
Para Utilizar el método Sort de una lista genérica se debe implementar la interfaz Isorteable
en el objeto

o Verdadero
o Falso (ES ICOMPARABLE)

La visibilidad de paquete (Internal) Permite :

o Limitar el acceso a clientes fuera de la misma solución


o Limitar el acceso a clientes ubicados en diferentes espacios de nombre
o Limitar el acceso a clientes fuera del ensamblado (EL ENSAMBLADO ES EL
RESULTADO DE LA COMPILACION DEL PROYECTO)
o Todas las anteriores son correctas
o Ninguna de las anteriores es correcta

La estructura “Using” Permite :

o Instanciar objetos sin importar las interfaces que implementen, para liberar
espacio de memoria deshechos
o Instanciar objetos que implementen la interfaz “Idisposable”, para liberar
espacio de memoria al desecharlos
o Llamar al método Dispose antes de finalizar
o Todas las anteriores son correctas
o Ninguna de las anteriores es correcta

Cual es el Método dentro de un objeto que implementa la interfaz “Iclonable” que se debe
utilizar dentro de la función Clone() para clonar todo el estado del objeto :

o MemberWiseClone()
o CloneAtributes()
o CloneObjet()
o Todas las anteriores
o Ninguna de las anteriores

La capacidad de clonar el estado de los atributos de un objeto y los objetos compuestos por
el mismo se conoce como :

o Clonación Integral
o Clonación de gran escala
o Clonación superficial
o Todas las anteriores
o Ninguna de las anteriores ----- Clonación profunda
¿ Que función cumple el Constructor Compartido?

Establece el estado inicial de los atributos compartidos

¿ Que objeto se debe utilizar para poder parsear direcciones IP?

o IpEndpoint
o Socket
o IpAdress
o Todas las anteriores
o Ninguna de las anteriores

¿Qué objetos se utilizaría para poder transmitir información NO orientada a la conexión de


un dispositivo a otro?

o UdpListener
o UdpClient
o UdpSender
o Todas las anteriores
o Ninguna de las anteriores

¿ Que objeto utilizaría para poder persistir la tupla IP- PUERTO?

o IpEndpoint

Acercad de delegados

o Permite la implementación de un comportamiento en el cliente


o Debe coincidir la firma del método con la definida en el delegado
o Se lo conoce como “llamada a punto de función seguro”
o Todas son correctas
o Ninguna es correcta
Acerca de los eventos

o Puede asignar mas de un método a un evento dado que posee una colección
de manejadores implícita
o Puede asignar sólo un método a un evento dado
o El evento se genera siempre dentro del objeto pero se atiende en el cliente
o Todas las anteriores son correctas
o Ninguna de las anteriores es correcta

Acerca de los constructores compartidos

o No permiten sobrecarga
o Nunca son públicos
o No pueden estar implementados en una clase abstracta
o Ninguna de las anteriores

Para disparar una excepción se utiliza la instrucción

Throw()

Ennumere 3 funciones del CLR

o Compilación JIT
o Manejo de Memoria
o MarshallerCOM

Acerca del FrameWork .NET :

o El único lenguaje de programación que puede elegir no utilizarlo es C++


o Se divide en 2 parte BCL y CRL
o Se divide en 2 partes CLS y CRL
o Ninguna de las anteriores

Para consumir Servicios de una biblioteca de clases (DLL)

o Solo necesito conocer el espacio de nombres para importarlo (cs: using)


o Se requiere hacer una referencia circular entre los proyectos
o Se requiere hacer una referencia desde el proyecto a la DLL
o Ninguna de las anteriores
Se tiene una colección de objetos ALUMNO llamada ALUMNOS, escriba la instrucción en LinQ
que permita traer todos los alumnos ordenados por edad descendente y nombre ascendente
donde el signo del alumno sea “Capricornio”

Var Resultado = (FROM Alumno IN Alumnos

Where alumno.signo == “capricornio”

orderBY alumno.edad descending, alumno.nombre ascending

select Alumno)

También podría gustarte