Los métodos como utilizarlo en las clases de C Sharp
lunes, 10 de septiembre de 2012
jueves, 30 de agosto de 2012
LAS CLASES EN C SHARP
Las clases al estar dentro de un espacio de nombre tiene la posibilidad de contener métodos, variables como ya lo habíamos mencionado en videotutoriales anteriores.
Cuando creamos las clases y las instanciamos lo que esta dentro de ella mientras las hayamos declarado como públicas las podemos utilizar cuando nosotros lo deseamos el objetivo de las clases es reducir la cantidad de código que utilizaremos con esto solo únicamente llamaremos la parte de código que vayamos ha utilizar con los métodos son un claro ejemplo de esto puesto que nos hacen las tareas infinidad de veces sin la necesidad de volverlo a programar ahorrando tiempo y haciendo programas mas estructurados y fáciles de encontrar errores o únicamente cuando se desean actualizar sin la necesidad de volver a crear la aplicación nuevamente.
Los métodos y todo de lo anterior se explicara de una forma más ilustrativa y fácil de comprender en el videotutorial que será subido en los siguientes días.
martes, 14 de agosto de 2012
domingo, 15 de julio de 2012
Variables Dentro de Clases en C Sharp
Las variables utilizadas dentro de una clase es un distinto de poder utilizarlas por eso en la siguiente clases trataremos mas a fondo este area dentro de las clases
lunes, 21 de mayo de 2012
CLASES EN C# NET
C# es un lenguaje orientado a objetos puro, lo que significa que todo con lo que vamos a trabajar en este lenguaje son objetos. Un objeto es un agregado de datos y de métodos que permiten manipular dichos datos, y un programa en C# no es más que un conjunto de objetos que interaccionan unos con otros a través de sus métodos.
Una clase es la definición de las características concretas de un determinado tipo de objetos. Es decir, de cuáles son los datos y los métodos de los que van a disponer todos los objetos de ese tipo. Por esta razón, se suele decir que el tipo de dato de un objeto es la clase que define las características del mismo.
Sintaxis de definición de clases
La sintaxis básica para definir una clase es la que a continuación se muestra:
|
De este modo se definiría una clase de nombre
|
sábado, 21 de abril de 2012
Operadores
Operadores
Un operador en C# es un símbolo formado por uno o más caracteres que permite realizar una determinada operación entre uno o más datos y produce un resultado.
A continuación se describen cuáles son los operadores incluidos en el lenguaje clasificados según el tipo de operaciones que permiten realizar, aunque hay que tener en cuenta que C# permite la redefinición del significado de la mayoría de los operadores según el tipo de dato sobre el que se apliquen, por lo que lo que aquí se cuenta se corresponde con los usos más comunes de los mismos:
- Operaciones aritméticas: Los operadores aritméticos incluidos en C# son los típicos de suma (+), resta (-), producto (*), división (/) y módulo (%) También se incluyen operadores de “menos unario” (–) y “más unario” (+)
Relacionados con las operaciones aritméticas se encuentran un par de operadores llamados checked y unchecked que permiten controlar si se desea detectar los desbordamientos que puedan producirse si al realizar este tipo de operaciones el resultado es superior a la capacidad del tipo de datos de sus operandos. Estos operadores se usan así:
checked (<expresiónAritmética>)
unchecked(<expresiónAritmética>)
Ambos operadores calculan el resultado de <expresiónAritmética> y lo devuelven si durante el cálculo no se produce ningún desbordamiento. Sin embargo, en caso de que haya desbordamiento cada uno actúa de una forma distinta: checked provoca un error de compilación si <expresiónAritmética> es una expresión constante y una excepciónSystem.OverflowException si no lo es, mientras que unchecked devuelve el resultado de la expresión aritmética truncado para modo que quepa en el tamaño esperado.
Por defecto, en ausencia de los operadores checked y unchecked lo que se hace es evaluar las operaciones aritméticas entre datos constantes como si se les aplicase checked y las operaciones entre datos no constantes como si se les hubiese aplicado unchecked.
- Operaciones lógicas: Se incluyen operadores que permiten realizar las operaciones lógicas típicas: “and” (&& y &), “or” (|| y |), “not” (!) y “xor” (^)
Los operadores && y || se diferencia de & y | en que los primeros realizan evaluación perezosa y los segundos no. La evaluación perezosa consiste en que si el resultado de evaluar el primer operando permite deducir el resultado de la operación, entonces no se evalúa el segundo y se devuelve dicho resultado directamente, mientras que la evaluación no perezosa consiste en evaluar siempre ambos operandos. Es decir, si el primer operando de una operación && es falso se devuelve false directamente, sin evaluar el segundo; y si el primer operando de una || es cierto se devuelve true directamente, sin evaluar el otro.
- Operaciones relacionales: Se han incluido los tradicionales operadores de igualdad (==), desigualdad (!=), “mayor que” (>), “menor que” (<), “mayor o igual que” (>=) y “menor o igual que” (<=)
- Operaciones de manipulación de bits: Se han incluido operadores que permiten realizar a nivel de bits operaciones “and” (&), “or” (|), “not” (~), “xor” (^), desplazamiento a izquierda (<<) y desplazamiento a derecha (>>) El operador << desplaza a izquierda rellenando con ceros, mientras que el tipo de relleno realizado por >> depende del tipo de dato sobre el que se aplica: si es un dato con signo mantiene el signo, y en caso contrario rellena con ceros.
- Operaciones de asignación: Para realizar asignaciones se usa en C# el operador =, operador que además de realizar la asignación que se le solicita devuelve el valor asignado. Por ejemplo, la expresión a = b asigna a la variable a el valor de la variable b y devuelve dicho valor, mientras que la expresión c = a = b asigna a c y a el valor de b (el operador = es asociativo por la derecha)
También se han incluido operadores de asignación compuestos que permiten ahorrar tecleo a la hora de realizar asignaciones tan comunes como:
temperatura = temperatura + 15; // Sin usar asignación compuesta
temperatura += 15; // Usando asignación compuesta
Las dos líneas anteriores son equivalentes, pues el operador compuesto += lo que hace es asignar a su primer operando el valor que tenía más el valor de su segundo operando. Como se ve, permite compactar bastante el código.
Aparte del operador de asignación compuesto +=, también se ofrecen operadores de asignación compuestos para la mayoría de los operadores binarios ya vistos. Estos son: +=, -=,*=, /=, %=, &=, |=, ^=, <<= y >>=. Nótese que no hay versiones compuestas para los operadores binarios && y ||.
Otros dos operadores de asignación incluidos son los de incremento(++) y decremento (--) Estos operadores permiten, respectivamente, aumentar y disminuir en una unidad el valor de la variable sobre el que se aplican. Así, estas líneas de código son equivalentes:
temperatura = temperatura + 1; // Sin usar asignación compuesta ni incremento temperatura += 1; // Usando asignación compuesta
temperatura++; // Usando incremento
Si el operador ++ se coloca tras el nombre de la variable (como en el ejemplo) devuelve el valor de la variable antes de incrementarla, mientras que si se coloca antes, devuelve el valor de ésta tras incrementarla; y lo mismo ocurre con el operador --. Por ejemplo:
c = b++; // Se asigna a c el valor de b y luego se incrementa b c = ++b;
c = ++b; // Se incrementa el valor de b y luego se asigna a c
La ventaja de usar los operadores ++ y -- es que en muchas máquinas son más eficientes que el resto de formas de realizar sumas o restas de una unidad, pues el compilador traducirlos en una única instrucción en código máquina[1].
- Operaciones con cadenas: Para realizar operaciones de concatenación de cadenas se puede usar el mismo operador que para realizar sumas, ya que en C# se ha redefinido su significado para que cuando se aplique entre operandos que sean cadenas o que sean una cadena y un carácter lo que haga sea concatenarlos. Por ejemplo, ″Hola″+″ mundo″ devuelve″Hola mundo″, y ″Hola mund″ + ′o′ también.
- Operaciones de acceso a tablas: Una tabla es un conjunto de ordenado de objetos de tamaño fijo. Para acceder a cualquier elemento de este conjunto se aplica el operador postfijo []sobre la tabla para indicar entre corchetes la posición que ocupa el objeto al que se desea acceder dentro del conjunto. Es decir, este operador se usa así:
[<posiciónElemento>]
Un ejemplo de su uso en el que se asigna al elemento que ocupa la posición 3 en una tabla de nombre tablaPrueba el valor del elemento que ocupa la posición 18 de dicha tabla es el siguiente:
tablaPrueba[3] = tablaPrueba[18];
Las tablas se estudian detenidamente en el Tema 7: Variables y tipos de datos
- Operador condicional: Es el único operador incluido en C# que toma 3 operandos, y se usa así:
<condición> ? <expresión1> : <expresión2>
El significado del operando es el siguiente: se evalúa <condición> Si es cierta se devuelve el resultado de evaluar <expresión1>, y si es falsa se devuelve el resultado de evaluar<condición2>. Un ejemplo de su uso es:
b = (a>0)? a : 0; // Suponemos a y b de tipos enteros
En este ejemplo, si el valor de la variable a es superior a 0 se asignará a b el valor de a, mientras que en caso contrario el valor que se le asignará será 0.
Hay que tener en cuenta que este operador es asociativo por la derecha, por lo que una expresión como a?b:c?d:e es equivalente a a?b:(c?d:e)
No hay que confundir este operador con la instrucción condicional if que se tratará en el Tema 8:Instrucciones, pues aunque su utilidad es similar al de ésta, ? devuelve un valor e ifno.
- Operaciones de delegados: Un delegado es un objeto que puede almacenar en referencias a uno o más métodos y a través del cual es posible llamar a estos métodos. Para añadir objetos a un delegado se usan los operadores + y +=, mientras que para quitárselos se usan los operadores – y -=. Estos conceptos se estudiarán detalladamente en el Tema 13: Eventos y delegados
- Operaciones de acceso a objetos: Para acceder a los miembros de un objeto se usa el operador ., cuya sintaxis es:
<objeto>.<miembro>
Si a es un objeto, ejemplos de cómo llamar a diferentes miembros suyos son:
a.b = 2; // Asignamos a su propiedad a el valor 2
a.f(); // Llamamos a su método f()
a.g(2); // Llamamos a su método g() pasándole como parámetro el valor entero 2
a.c += new adelegado(h) // Asociamos a su evento c el código del método h() de //“tipo” adelegado
No se preocupe si no conoce los conceptos de métodos, propiedades, eventos y delegados en los que se basa este ejemplo, pues se explican detalladamente en temas posteriores.
- Operaciones con punteros: Un puntero es una variable que almacena una referencia a una dirección de memoria. Para obtener la dirección de memoria de un objeto se usa el operador&, para acceder al contenido de la dirección de memoria almacenada en un puntero se usa el operador *, para acceder a un miembro de un objeto cuya dirección se almacena en un puntero se usa ->, y para referenciar una dirección de memoria de forma relativa a un puntero se le aplica el operador [] de la forma puntero[desplazamiento]. Todos estos conceptos se explicarán más a fondo en el Tema 18: Código inseguro.
- Operaciones de obtención de información sobre tipos: De todos los operadores que nos permiten obtener información sobre tipos de datos el más importante es typeof, cuya forma de uso es:
typeof(<nombreTipo>)
Este operador devuelve un objeto de tipo System.Type con información sobre el tipo de nombre <nombreTipo> que podremos consultar a través de los miembros ofrecidos por dicho objeto. Esta información incluye detalles tales como cuáles son sus miembros, cuál es su tipo padre o a qué espacio de nombres pertenece.
Si lo que queremos es determinar si una determinada expresión es de un tipo u otro, entonces el operador a usar es is, cuya sintaxis es la siguiente:
<expresión> is <nombreTipo>
El significado de este operador es el siguiente: se evalúa <expresión>. Si el resultado de ésta es del tipo cuyo nombre se indica en <nombreTipo> se devuelve true; y si no, se devuelve false. Como se verá en el Tema 5: Clases, este operador suele usarse en métodos polimórficos.
Finalmente, C# incorpora un tercer operador que permite obtener información sobre un tipo de dato: sizeof Este operador permite obtener el número de bytes que ocuparán en memoria los objetos de un tipo, y se usa así:
sizeof(<nombreTipo>)
sizeof sólo puede usarse dentro de código inseguro, que por ahora basta considerar que son zonas de código donde es posible usar punteros. No será hasta el Tema 18: Código inseguro cuando lo trataremos en profundidad.
Además, sizeof sólo se puede aplicar sobre nombres de tipos de datos cuyos objetos se puedan almacenar directamente en pila. Es decir, que sean estructuras (se verán en el Tema 13) o tipos enumerados (se verán en el Tema 14)
- Operaciones de creación de objetos: El operador más típicamente usado para crear objetos es new, que se usa así:
new <nombreTipo>(<parametros>)
Este operador crea un objeto de <nombreTipo> pasándole a su método constructor los parámetros indicados en <parámetros> y devuelve una referencia al mismo. En función del tipo y número de estos parámetros se llamará a uno u otro de los constructores del objeto. Así, suponiendo que a1 y a2 sean variables de tipo Avión, ejemplos de uso del operadornew son:
Avión a1 = new Avión(); // Se llama al constructor sin parámetros de Avión
Avión a2 = new Avión(“Caza”); // Se llama al constructor de Avión que toma // como parámetro una cadena
En caso de que el tipo del que se haya solicitado la creación del objeto sea una clase, éste se creará en memoria dinámica, y lo que new devolverá será una referencia a la dirección de pila donde se almacena una referencia a la dirección del objeto en memoria dinámica. Sin embargo, si el objeto a crear pertenece a una estructura o a un tipo enumerado, entonces éste se creará directamente en la pila y la referencia devuelta por el new se referirá directamente al objeto creado. Por estas razones, a las clases se les conoce como tipos referencia ya que de sus objetos en pila sólo se almacena una referencia a la dirección de memoria dinámica donde verdaderamente se encuentran; mientras que a las estructuras y tipos enumerados se les conoce como tipos valor ya sus objetos se almacenan directamente en pila.
C# proporciona otro operador que también nos permite crear objetos. Éste es stackalloc, y se usa así:
stackalloc <nombreTipo>[<nElementos>]
Este operador lo que hace es crear en pila una tabla de tantos elementos de tipo <nombreTipo> como indique <nElementos> y devolver la dirección de memoria en que ésta ha sido creada. Por ejemplo:
stackalloc sólo puede usarse para inicializar punteros a objetos de tipos valor declarados como variables locales. Por ejemplo:
int * p = stackalloc[100]; // p apunta a una tabla de 100 enteros.
- Operaciones de conversión: Para convertir unos objetos en otros se utiliza el operador de conversión, que no consiste más que en preceder la expresión a convertir del nombre entre paréntesis del tipo al que se desea convertir el resultado de evaluarla. Por ejemplo, si l es una variable de tipo long y se desea almacenar su valor dentro de una variable de tipo intllamada i, habría que convertir previamente su valor a tipo int así:
i = (int) l; // Asignamos a i el resultado de convertir el valor de l a tipo int
Los tipos int y long están predefinidos en C# y permite almacenar valores enteros con signo. La capacidad de int es de 32 bits, mientras que la de long es de 64 bits. Por tanto, a no ser que hagamos uso del operador de conversión, el compilador no nos dejará hacer la asignación, ya que al ser mayor la capacidad de los long, no todo valor que se pueda almacenar en un long tiene porqué poderse almacenar en un int. Es decir, no es válido:
i = l; //ERROR: El valor de l no tiene porqué caber en i
Esta restricción en la asignación la impone el compilador debido a que sin ella podrían producirse errores muy difíciles de detectar ante truncamientos no esperados debido al que el valor de la variable fuente es superior a la capacidad de la variable destino.
Existe otro operador que permite realizar operaciones de conversión de forma muy similar al ya visto. Éste es el operador as, que se usa así:
<expresión> as <tipoDestino>
Lo que hace es devolver el resultado de convertir el resultado de evaluar <expresión> al tipo indicado en <tipoDestino> Por ejemplo, para almacenar en una variable p el resultado de convertir un objeto t a tipo tipo Persona se haría:
p = t as Persona;
Las únicas diferencias entre usar uno u otro operador de conversión son:
q as sólo es aplicable a tipos referencia y sólo a aquellos casos en que existan conversiones predefinidas en el lenguaje. Como se verá más adelante, esto sólo incluye conversiones entre un tipo y tipos padres suyos y entre un tipo y tipos hijos suyos.
Una consecuencia de esto es que el programador puede definir cómo hacer conversiones de tipos por él definidos y otros mediante el operador (), pero no mediante as.
Esto se debe a que as únicamente indica que se desea que una referencia a un objeto en memoria dinámica se trate como si el objeto fuese de otro tipo, pero no implica conversión ninguna. Sin embargo, () sí que implica conversión si el <tipoDestino> no es compatible con el tipo del objeto referenciado. Obviamente, el operador se aplirará mucho más rápido en los casos donde no sea necesario convertir.
q En caso de que se solicite hacer una conversión inválida as devuelve null mientras que () produce una excepción System.InvalidCastException.
sábado, 24 de marzo de 2012
Primer Tema C Sharp -----Variables
Definición de variables
Una variable puede verse simplemente como un hueco en el que se puede almacenar un objeto de un determinado tipo al que se le da un cierto nombre. Para poderla utilizar sólo hay que definirla indicando cual erá su nombre y cual será el tipo de datos que podrá almacenar.En el siguiente vídeo comprenderemos de mejor manera lo que se explico anteriormente.
Introduccion a C Sharp
C# (pronunciado si sharp en inglés) es un lenguaje de programación orientado a objetos desarrollado y estandarizado por Microsoft como parte de su plataforma .NET, que después fue aprobado como un estándar por la ECMA (ECMA-334) e ISO (ISO/IEC 23270). C# es uno de los lenguajes de programación diseñados para la infraestructura de lenguaje común.
Su sintaxis básica deriva de C/C++ y utiliza el modelo de objetos de la plataforma .NET, similar al de Java, aunque incluye mejoras derivadas de otros lenguajes.
El nombre C Sharp fue inspirado por la notación musical, donde '#' (sostenido, en inglés sharp) indica que la nota (C es la nota do en inglés) es un semitono más alta, sugiriendo que C# es superior a C/C++. Además, el signo '#' viene de cuatro '+' pegados.1
Aunque C# forma parte de la plataforma .NET, ésta es una API, mientras que C# es un lenguaje de programación independiente diseñado para generar programas sobre dicha plataforma. Ya existe un compilador implementado que provee el marco Mono - DotGNU, el cual genera programas para distintas plataformas como Windows, Unix, Android, iOS, Windows Phone, Mac OS y GNU/Linux.
Su sintaxis básica deriva de C/C++ y utiliza el modelo de objetos de la plataforma .NET, similar al de Java, aunque incluye mejoras derivadas de otros lenguajes.
El nombre C Sharp fue inspirado por la notación musical, donde '#' (sostenido, en inglés sharp) indica que la nota (C es la nota do en inglés) es un semitono más alta, sugiriendo que C# es superior a C/C++. Además, el signo '#' viene de cuatro '+' pegados.1
Aunque C# forma parte de la plataforma .NET, ésta es una API, mientras que C# es un lenguaje de programación independiente diseñado para generar programas sobre dicha plataforma. Ya existe un compilador implementado que provee el marco Mono - DotGNU, el cual genera programas para distintas plataformas como Windows, Unix, Android, iOS, Windows Phone, Mac OS y GNU/Linux.
Microsoft .Net
.NET es un framework de Microsoft que hace un énfasis en la transparencia de redes, con independencia de plataforma de hardware y que permita un rápido desarrollo de aplicaciones. Basado en ella, la empresa intenta desarrollar una estrategia horizontal que integre todos sus productos, desde el sistema operativo hasta las herramientas de mercado.
.NET podría considerarse una respuesta de Microsoft al creciente mercado de los negocios en entornos Web, como competencia a la plataforma Java de Oracle Corporation y a los diversos framework de desarrollo web basados en PHP. Su propuesta es ofrecer una manera rápida y económica, a la vez que segura y robusta, de desarrollar aplicaciones –o como la misma plataforma las denomina, soluciones– permitiendo una integración más rápida y ágil entre empresas y un acceso más simple y universal a todo tipo de información desde cualquier tipo de dispositivo.
sábado, 3 de marzo de 2012
SQL Server 2005
SQL Server 2005 (Yukon nombre en clave), lanzado en octubre de 2005, es el sucesor de SQL Server 2000. Se incluye soporte nativo para la gestión de XML de datos, además de datos relacionales . Para ello, definió un xml tipo de datos que podría ser utilizado ya sea como un tipo de datos en las columnas de base de datos o como literales en las consultas.Columnas XML se puede asociar con XSD esquemas, datos XML que se almacena se verifica con respecto al esquema. XML se convierte en un tipo de datos binario interno antes de ser almacenado en la base de datos. Métodos especializados de indexación se pusieron a disposición de los datos XML. Los datos XML se preguntó utilizando XQuery , Common Language Runtime (CLR) de la integración era una característica principal de esta edición, le permite a uno escribir código SQL en código administrado por el CLR. SQL Server 2005 añade algunas extensiones a la T-SQL, el lenguaje para permitir la incrustación consultas XQuery en T-SQL. Además, también define una nueva extensión de XQuery, llamado XML DML, que permite la consulta a base de modificaciones de datos XML. SQL Server 2005 también permite a un servidor de base de datos que se exponen más de los servicios web que utilizan secuencia de datos tabular (TDS) encapsulados dentro de SOAP (Protocolo) las solicitudes. Cuando los datos se accede a través de servicios web, los resultados son devueltos como XML.
Para los datos relacionales, T-SQL se ha ampliado con funciones de control de errores (try / catch) y el apoyo a las consultas recursivas con CTE (expresiones de tabla comunes). SQL Server 2005 también ha sido mejorado con nuevos algoritmos de indexación, la sintaxis y mejores sistemas de recuperación de errores. Las páginas de datos son la suma de comprobación de la resistencia de errores mejor, y el apoyo de concurrencia optimista se ha añadido para un mejor rendimiento. Permisos y control de acceso se han hecho más granular y el procesador de consultas se encarga de la ejecución simultánea de las consultas de una manera más eficiente. Las particiones en tablas e índices son compatibles de forma nativa, por lo que la ampliación horizontal de una base de datos en un cluster es más fácil. SQL CLR se introdujo con SQL Server 2005 para permitir su integración con. NET Framework.
SQL Server 2005 (DMV introducidas vistas de administración dinámica), que son puntos de vista y funciones especializadas que devuelven información del servidor de estado que puede ser usado para monitorear la salud de una instancia de servidor, diagnosticar problemas y ajustar el rendimiento.
SQL Server 2005 introdujo Database Mirroring, pero no recibió el pleno apoyo hasta que el Servicio primera versión Pack (SP1). En la versión inicial (RTM) de SQL Server 2005, copia de la base de datos estaba disponible, pero sin apoyo. Con el fin de poner en práctica duplicación de la base de datos en la versión RTM, que tuvo que aplicar el indicador de traza 1400 en el inicio. Reflejo de la base de datos es una opción de alta disponibilidad que proporciona redundancia y failover en el nivel de base de datos. Conmutación por error se puede realizar manualmente o se puede configurar para conmutación automática por error.
Instalación de Visual Studio y SQL Server 2005
Este es un pequeño videotutorial de como instalar Visual Studio y SQL Server 2005 en tu ordenador
Para si comenzar la programación que es muy divertida e interesante
Para si comenzar la programación que es muy divertida e interesante
Visual Studio
Empezando A Programar
Hoy en día las organizaciones enfrentan numerosos desafíos de datos, tales como la necesidad de tomar decisiones más rápidas y más orientadas a datos, la necesidad de aumentar la productividad y flexibilidad del personal de desarrollo y presionan para reducir los presupuestos generales de informática (IT) a la vez que escalan la infraestructura para satisfacer las exigencias cada vez mayores.
SQL Server 2005 está diseñado para ayudar a las empresas a enfrentar estos desafíos. Esta solución de administración y análisis de datos de próxima generación ofrece seguridad, escalabilidad y disponibilidad mayores a las aplicaciones de datos empresariales y analíticas, a la vez que las hace más fáciles de crear, desplegar y administrar.
Con la ampliación de las ventajas de SQL Server 2000, SQL Server 2005 ofrece una solución integrada de administración y análisis de datos que ayuda a las organizaciones de cualquier magnitud a realizar lo siguiente:
| • | Crear, desplegar y administrar aplicaciones empresariales más seguras, escalables y confiables. |
| • | Maximizar la productividad de IT mediante la reducción de la complejidad y el soporte de aplicaciones de bases de datos. |
| • | Compartir datos en múltiples plataformas, aplicaciones y dispositivos para facilitar la conexión de sistemas internos y externos. |
| • | Controlar los costes sin sacrificar el rendimiento, la disponibilidad, la escalabilidad o la seguridad. |
Suscribirse a:
Comentarios (Atom)



