Reseña Visual Studio 2010
Reseña Visual Studio 2010
Reseña Visual Studio 2010
Microsoft Visual C# es un lenguaje de programacin sencillo pero potente, destinado sobre todo a los desarrolladores de aplicaciones que utilicen Microsoft .NET Framework. Hereda muchas de las mejores caractersticas de C++ y de Microsoft Visual Basic, pero sin casi ninguno de sus anacronismos e inconsistencias; lo que da lugar a un lenguaje ms claro y lgico. En este libro aprender paso a paso a construir aplicaciones con Visual C# 2010 y Microsoft .NET Framework 4.0. Es una gua idnea para aqullos que cuentan con conocimientos bsicos de programacin, quienes encontrarn numerosos ejercicios y ejemplos prcticos que les permitirn dominar todas las caractersticas del lenguaje C# y crear aplicaciones y componentes para Windows.
C Sharp
El ttulo de este artculo se muestra incorrectamente debido a limitaciones tcnicas. El ttulo correcto es C#.
C#
Desarrollador(es)
Microsoft http://www.microsoft.com/net/
Informacin general
Extensiones comunes
.cs
Paradigma
Apareci en
2000
Diseado por
Microsoft
Tipo de dato
Dialectos
Influido por
Ha influido a
C# (pronunciado si sharp en ingls) es un lenguaje de programacin orientado a objetosdesarrollado y estandarizado por Microsoft como parte de su plataforma .NET, que despus fue aprobado como un estndar por la ECMA (ECMA-334) e ISO (ISO/IEC 23270). C# es uno de los lenguajes de programacin diseados para la infraestructura de lenguaje comn. Su sintaxis bsica 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 notacin musical, donde '#' (sostenido, en inglssharp) indica que la nota (C es la nota do en ingls) es un semitono ms alta, sugiriendo que C# es superior a C/C++. Adems, el signo '#' se compone de cuatro signos '+' pegados.1 Aunque C# forma parte de la plataforma .NET, sta es una API, mientras que C# es un lenguaje de programacin independiente diseado 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.
ndice
[ocultar]
1 Historia 2 Tipos de datos 3 Literales 4 Variables 5 Constantes 6 Operadores 7 Instrucciones de control 8 Mtodos 9 Matrices 10 Clases y objetos 11 Cadenas de caracteres 12 Ejemplos 13 Compiladores 14 Metas del diseo del lenguaje 15 Referencias 16 Enlaces externos
o o
Historia[editar]
Durante el desarrollo de la plataforma .NET, las bibliotecas de clases fueron escritas originalmente usando un sistema de cdigo gestionado llamado Simple Managed C (SMC). En enero de 1999, Anders Hejlsberg form un equipo con la misin de desarrollar un nuevo lenguaje de programacin llamado Cool (C orientado a objetos). Este nombre tuvo que ser cambiado debido a problemas de marca, pasando a llamarse C#.2 La biblioteca de clases de la plataforma .NET fue migrada entonces al nuevo lenguaje. Hejlsberg lider el proyecto de desarrollo de C#. Anteriormente, ya particip en el desarrollo de otros lenguajes como Turbo Pascal,J++ y Embarcadero Delphi.
Tipos de datos[editar]
C# contiene dos categoras generales de tipos de datos integrados: tipos de valor y tipos de referencia. El trmino tipo de valorindica que esos tipos contienen directamente sus valores. Tipos para definir nmeros enteros:
Tipo
Equivalente BCL
Tamao
Rango
Significado
byte
System.Byte
8-bit (1byte)
0 a 255
sbyte
System.SByte
8-bit (1byte)
-128 a 127
short
System.Int16
16-bit (2byte)
-32.768 a 32.767
ushort System.UInt16
16-bit (2byte)
0 a 65.535
int
System.Int32
32-bit (4byte)
-2.147.483.648 a 2.147.483.647
uint
System.UInt32
32-bit (4byte)
0 a 4.294.967.295
long
System.Int64
64-bit (8byte)
-9.223.372.036.854.775.808 a 9.223.372.036.854.775.807
ulong
System.UInt64
64-bit (8byte)
0 a 18.446.744.073.709.551.615
Los tipos de coma flotante pueden representar nmeros con componentes fraccionales. Existen dos clases de tipos de coma flotante:float y double. El tipo double es el ms utilizado porque muchas funciones matemticas de la biblioteca de clases de C# usan valores double. Quiz, el tipo de coma flotante ms interesante de C# es decimal, dirigido al uso de clculos monetarios. La aritmtica de coma flotante normal est sujeta a una variedad de errores de redondeo cuando se aplica a valores decimales. El tipodecimal elimina estos errores y puede representar hasta 28 lugares decimales.
Tipo
Equivalente BCL
Tamao
Rango
Significado
float
System.Single
32-bit (4byte)
1.401298E45 a 3.402823E+38
double
System.Double
64-bit (8byte)
4.94065645841246E324 a 1.79769313486232E+308
decimal System.Decimal
128-bit (16-byte)
Los caracteres en C# no tienen un tamao de 8 bits como en otros muchos lenguajes de programacin, sino que usa un tamao de 16 bits llamado Unicode al cual se le llama char. No existen conversiones automticas de tipo entero a char.
Tamao
Rango
Significado
Para los tipos de datos lgicos no existen conversiones automticas de tipo entero a bool.
Tipo
Equivalente BCL
Tamao
Rango
Significado
Literales[editar]
En ocasiones, resulta ms sencillo usar un sistema numrico en base 16 en lugar de 10, para tal caso C# permite especificar nmeros enteros en formato hexadecimal, y se define anteponiendo 0x, por ejemplo: 0xFF, que equivale a 255 en decimal. C# tiene caracteres denominados secuencias de escape para facilitar la escritura con el teclado de smbolos que carecen de representacin visual. C#, al igual que C++, define un tipo de cadena de caracteres. Dentro de la cadena de caracteres se pueden usar secuencias de escape. Una cadena de caracteres puede iniciarse con el smbolo @ seguido por una cadena entre comillas ("), en tal caso, las secuencias de escape no tienen efecto, y adems la cadena puede ocupar dos o ms lneas.
Enteros
decimal
245, [0..9]+
hexadecimal
entero largo
12L
Coma flotante
float
double
decimal
9.95M
Caracteres
char
Cadenas
String
Secuencias de escape
Alerta (timbre)
\a
Retroceso
\b
Avance de pgina
\f
Nueva lnea
\n
Retorno de carro
\r
Tabulador horizontal \t
Tabulador vertical
\v
Nulo
\0
Comilla simple
\'
Comilla doble
\"
Barra inversa
\\
Variables[editar]
Las variables son identificadores asociados a valores. Se declaran indicando el tipo de dato que almacenar y su identificador. Un identificador puede:
empezar por "_". contener caracteres Unicode en maysculas y minsculas (sensible a maysculas y minsculas).
Un identificador no puede:
empezar por un nmero. empezar por un smbolo, ni aunque sea una palabra clave. contener ms de 511 caracteres.
Declarar una variable: int miNumero; // Declaramos la variable, pero no la inicializamos con ningn valor. Para asignar un valor a una variable, se indica el identificador de la misma, seguido del smbolo igual (=) y el valor que queremos que almacene: miNumero = 5; // Asignamos el valor '5'. Tambin se puede declarar y asignar un valor al mismo tiempo: int miNumero = 5; // Declaramos la variable, y asignamos el valor '5'. Las conversiones de tipo de variables en C# se representan en la siguiente tabla en donde la fila es el origen y la columna el destino.
Leyenda
Rojo
Azul
byte sbyte short ushort int uint long ulong float double decimal char bool
byte
sbyte
short
ushort
int
uint
long
ulong
float
double
decimal
char
bool
Toda conversin implcita no ocasiona prdida de informacin, truncamientos o redondeos. Es posible (mas no siempre ocurre) que en una conversin explcita haya prdida de informacin, truncamientos o redondeos.
En toda conversin implcita el tipo de dato destino es mayor que el tipo de dato origen. La conversin explcita se realiza indicando el tipo de dato al que se quiere convertir entre parntesis, seguido del valor:
long valor = 123; // Conversin implcita long valor = (long)123; // Conversin explcita Adems de realizarse dentro de una asignacin, las conversiones de tipos tambin tienen lugar dentro de una expresin, pues en cada operacin ambos operandos deben de ser del mismo tipo. Si la conversin es del tipo implcito se efecta el siguiente algoritmo en dicho orden:
1. 2. 3. 4. 5. 6.
Si un operando es decimal, el otro operando se transforma a decimal. Si un operando es double, el otro operando se transforma a double. Si un operando es float, el otro operando se transforma a float. Si un operando es ulong, el otro operando se transforma a ulong. Si un operando es long, el otro operando se transforma a long. Si un operando es uint, y si el otro operando es de tipo sbyte, short o int, los dos se transforman a long.
7. 8.
Si un operando es uint, el otro operando se transforma a uint. Si no es ninguno de los casos anteriores, los dos operandos se transforman a int.
Constantes[editar]
Las constantes son valores inmutables, y por tanto no se pueden cambiar.
const
Cuando se declara una constante con la palabra clave const, tambin se debe asignar el valor. Tras esto, la constante queda bloqueada y no se puede cambiar. Son implcitamente estticas (static). const double PI = 3.1415;
readonly
A diferencia de const, no requiere que se asigne el valor al mismo tiempo que se declara. Pueden ser miembros de la instancia o miembros estticos de la clase (static). readonly double E; E = 2.71828;
Operadores[editar]
Categora Operadores
Aritmtico
+ - * / %
^ ! ~ && ||
Concatenacin
Incremento, decremento ++ --
Desplazamiento
<< >>
Relacional
Asignacin
= ^= <<= >>=
Acceso a miembro
Indexacin
[ ]
Conversin
( )
Condicional
? :
Creacin de objeto
new
Informacin de tipo
as is sizeof typeof
Los operadores aritmticos funcionan igual que en C y C++. El resultado de los operadores relacionales y lgicos es un valor de tipo bool. Los operadores de cortocircuito evalan el segundo operando solo cuando es necesario. Los operadores a nivel de bits no se pueden aplicar a tipos bool, float, double o decimal.
Instrucciones de control[editar]
if-else
if (i == 2) { // ... } else if (i == 3) { // ... } else { // ... }
switch
switch (i) { case 1: ... break; case 2: case 3: ... break; default: ... break; }
for
for (int i = 0; i < 10; i++) { // ... }
while
while (i < 10) { // ... }
do-while
do { // ... } while (true);
foreach
foreach (char c in charList) { // ... }
while, switch, return, break, continue son, bsicamente, iguales que en C, C++ y
Java.
La instruccin foreach, al igual que en Java, realiza un ciclo a travs de los elementos de una matriz o coleccin. En este ciclo se recorre la coleccin y la variable recibe un elemento de dicha coleccin en cada iteracin.
Mtodos[editar]
Todo mtodo debe ser parte de una clase, no existen mtodos globales (funciones).
Por defecto, los parmetros se pasan por valor. (Ntese que las listas y otras colecciones son variables por referencia (referencias al espacio reservado para esa lista en la pila) y que se pasa por valor al mtodo la referencia , pero el espacio reservado para la lista es comn, por lo que si elimina un elemento lo hace tambin de la original)
El modificador ref fuerza a pasar los parmetros por referencia en vez de pasarlos por valor y obliga a inicializar la variable antes de pasar el parmetro.
El modificador out es similar al modificador ref, con la diferencia de que no se obliga a inicializar la variable antes de pasar el parmetro.
Cuando ref y out modifican un parmetro de referencia, la propia referencia se pasa por referencia.
El modificador params sirve para definir un nmero variable de argumentos los cuales se implementan como una matriz.
Un mtodo debe tener como mximo un nico parmetro params y ste debe ser el ltimo. Un mtodo puede devolver cualquier tipo de dato, incluyendo tipos de clase. Ya que en C# las matrices se implementan como objetos, un mtodo tambin puede devolver una matriz (algo que se diferencia de C++ en que las matrices no son vlidas como tipos de valores devueltos).
C# implementa sobrecarga de mtodos, dos o ms mtodos pueden tener el mismo nombre siempre y cuando se diferencien por sus parmetros. El mtodo Main es un mtodo especial al cual se refiere el punto de partida del programa.
ref
void PassRef(ref int x) { if (x == 2) { x = 10; } } int z = 0; PassRef(ref z);
out
void PassOut(out int x) { x = 2; } int z; PassOut(out z);
params
int MaxVal(char c, params int[] nums) { // ...
} int a = 1; MaxVal('a', 23, 3, a, -12); // El primer parmetro es obligatorio, seguidamente se pueden poner tantos nmeros enteros como se quiera
Sobrecarga de mtodos
int Suma(int x, int y) { return x + y; } int Suma(int x, int y, int z) { return x + y + z; } Suma(1, 2); // Llamar al primer mtodo. Suma(1, 2, 3); // Llamar al segundo mtodo.
Main
public static void Main(string[] args) { // ... }
Matrices[editar]
En C# las matrices se implementan como objetos. Los ndices de las matrices comienzan en 0. Ya que C# implementa las matrices como objetos, cada matriz tiene una propiedad Length que contiene el nmero de elementos que puede alojar o tiene alojados. Declarar una matriz: int[] intArray = new int[5]; Declarar e inicializar una matriz (el tamao de la matriz se puede omitir): int[] intArray = new int[] {1, 2, 3, 4, 5}; Acceder a un elemento: intArray[2]; // Retornar el valor '3' Declarar una matriz multidimensional: int[,] intMultiArray = new int[3, 2]; // 3 filas y 2 columnas Declarar e inicializar una matriz multidimensional (el tamao de la matriz se puede omitir): int[,] intMultiArray = new int[,] { {1, 2}, {3, 4}, {5, 6} }; Acceder a un elemento de una matriz multidimensional: intMultiArray[2, 0]; // Retornar el valor '5'
Clases y objetos[editar]
Una variable de objeto de cierta clase no almacena los valores del objeto sino su referencia (al igual que Java).
El operador de asignacin no copia los valores de un objeto, sino la referencia al mismo (al igual que Java).
Un constructor no devuelve ningn valor (ni siquiera void). Al igual que los mtodos, los constructores tambin pueden ser sobrecargados. Si no se especfica un constructor en una clase, se usa uno por defecto que consiste en asignar a todas las variables el valor 0,null o false segn corresponda.
Cuando un objeto no es referenciado por ninguna variable, el recolector de basura ejecuta el destructor de dicha clase y libera la memoria utilizada.
El destructor de una clase no se llama cuando un objeto sale del mbito. Todos los destructores se llamarn antes de que finalice un programa. La palabra clave this es una referencia al mismo objeto en el cual se usa. La palabra clave base es una referencia a la clase padre del objeto en la que se usa (por defecto, Object).
La palabra clave static hace que un miembro pertenezca a una clase en vez de pertenecer a objetos de dicha clase. Se puede tener acceso a dicho miembro antes de que se cree cualquier objeto de su clase y sin referencias a un objeto.
Un mtodo static no tiene una referencia this. Un mtodo static puede llamar slo a otros mtodos static. Un mtodo static slo debe tener acceso directamente a datos static. Un constructor static se usa para inicializar atributos que se aplican a una clase en lugar de aplicarse a una instancia.
C# permite la sobrecarga de operadores (+, -, *, etc.) con la palabra clave operator. Al comparar objetos (==, !=, <, >, <=, >=) se comprueba si hacen referencia al mismo objeto.
Declarar una clase: class Clase { } Iniciar una clase (tambin llamado crear un objeto de la clase o instanciar una clase): Clase c = new Clase();
Constructor (como si fuera un mtodo, pero con el nombre de su clase): class Clase { Clase() { // ... } } Destructor (como si fuera un mtodo, precedido del smbolo '~'): class Clase { ~Clase() { // ... } }
this:
class Clase { int i = 1; Clase() { this.Arrancar(); // Llamar al mtodo 'Arrancar' del objeto } void Arrancar() { // ... } }
static:
class Clase { static int i = 1; } Clase.i; // Retornar el valor '1'. No hace falta crear un objeto, ya que al ser 'static', pertenece a la clase.
operator:
class Clase { static int operator +(int x, int y) { // Sobrecarga el operador '+' // ... } static int operator -(int x, int y) { // Sobrecarga el operador '-' // ... } static int operator int(byte x) { // Sobrecarga la conversin de tipo 'byte' a 'int' // ... } }
Comparacin de objetos: class Clase { } Clase c1 = new Clase(); Clase c2 = new Clase(); bool b = c1 == c2; // Retornar 'false', ya que son dos objetos distintos
Cadenas de caracteres[editar]
El tipo de dato para las cadenas de caracteres es string. Realmente la palabra clave string es un alias de la clase System.String de la plataforma .NET.
En C# las cadenas son objetos y no una matriz de caracteres; aun as, se puede obtener un carcter arbitrario de una cadena por medio de su ndice (mas no modificarlo).
Las cadenas son inmutables, una vez creadas no se pueden modificar, solo se pueden copiar total o parcialmente. El operador == determina si dos referencias hacen referencia al mismo objeto, pero al usar dicho operador con dos variables tipostring se prueba la igualdad del contenido de las cadenas y no su referencia. Sin embargo, con el resto de los operadores relacionales, como < y >=, s se comparan las referencias.
Se pueden concatenar (unir) dos cadenas mediante el operador +. Las cadenas se pueden usar en las instrucciones switch.
Declarar una cadena de caracteres (como si fuera una variable de un tipo de dato como int o double): string texto = "Cadena de caracteres"; string texto = new System.String("Cadena de caracteres"); // Equivalente al anterior Longitud de una cadena: string texto = "Cadena de caracteres"; int i = texto.Length; // Retornar '20' Comparar dos cadenas: bool b = "texto" == "texto"; // Retornar 'true', ya que ambas cadenas contienen "texto" Concatenar cadenas: string texto = "Cadena de" + " caracteres"; // Ntese el espacio antes de "caracteres", si no se pusiera, aparecera junto: "decaracteres"
La clase System.String, y una instancia de la misma, string, poseen algunos mtodos para trabajar con cadenas, como:
int CompareTo(string str): devuelve menor que cero si la cadena que llama es menor
que str, mayor que cero si la cadena que llama es mayor que str, y cero si las cadenas son iguales. string texto = "abc"; int i = texto.CompareTo("abc"); // Retornar '0'
Ejemplos[editar]
Ejemplo bsico "Hola mundo": using System; public class Ejemplo { public static void Main(string[] args) { Console.WriteLine("Hola mundo"); } } Suma y concatenacin: using System; public class Ejemplo { public static void Main(string[] args) { int x = 10; int y = 20; Console.WriteLine("El resultado es: " + (x + y)); // Imprimir en pantalla: "El resultado es: 30" } } Uso de clases, mtodos, propiedades y sobrecarga: using System; public class Coche { private int numPuertas; public int NumPuertas { get { return this.numPuertas; } set { this.numPuertas = value; // 'value' es una variable que se asigna automticamente al asignar un valor a la propiedad, para poder trabajar con dicho valor. } } public Coche(int numPuertas) { this.NumPuertas = numPuertas; } // Sobrecarga: si se instancia la clase sin indicar ningn parmetro, se inicializa 'numPuertas' con el valor '2' public Coche() : this(2) { } }
public class Ejemplo { public static void Main(string[] args) { Coche coche = new Coche(); // Se usa el segundo constructor coche.NumPuertas = 4; Console.WriteLine("El nmero de puertas es: " + coche.NumPuertas); } }
Compiladores[editar]
En la actualidad existen los siguientes compiladores para el lenguaje C#:
Microsoft .NET Framework 2.0 (SDK) incluye un compilador de C#, pero no un IDE. Microsoft Visual Studio, IDE por excelencia de este lenguaje. SharpDevelop, IDE libre para C# bajo licencia GNU LGPL, con una interfaz muy similar a Microsoft Visual Studio.
Mono, es una implementacin con licencia GNU GPL de todo el entorno .NET desarrollado por Novell. Como parte de esta implementacin se incluye un compilador de C#.
Delphi 2006, de Borland Software Corporation. DotGNU Portable.NET, de la Free Software Foundation.
Lenguaje de programacin orientado a objetos simple, moderno y de propsito general. Inclusin de principios de ingeniera de software tales como revisin estricta de los tipos de datos, revisin de lmites de vectores, deteccin de intentos de usar variables no inicializadas, y recoleccin de basura automtica.
Capacidad para desarrollar componentes de software que se puedan usar en ambientes distribuidos.
Portabilidad del cdigo fuente. Fcil migracin del programador al nuevo lenguaje, especialmente para programadores familiarizados con C, C++ y Java.
Soporte para internacionalizacin. Adecuacin para escribir aplicaciones de cualquier tamao: desde las ms grandes y sofisticadas como sistemas operativos hasta las ms pequeas funciones.
Referencias
Como sucede con todos los tipos de clase, Common Language Runtime (CLR) de .NET Framework carga la informacin de tipo de una clase esttica cuando se carga el programa que hace referencia a la clase. El programa no puede especificar exactamente cundo se carga la clase. Sin embargo, se garantiza que se ha cargado, que sus campos se han inicializado y que se ha llamado a su constructor esttico antes de que se haga referencia a la clase por primera vez en el programa. Solo se llama una vez a un constructor esttico y una clase esttica permanece en memoria durante el perodo de duracin del dominio de aplicacin donde reside el programa.
Nota
Para crear una clase no esttica que permita crear solo una instancia de s misma, vea Implementing Singleton in C#.
En la siguiente lista se proporcionan las caractersticas principales de una clase esttica: Solo contiene miembros estticos. No se pueden crear instancias de ella. Es de tipo sealed. No puede contener constructores de instancia. Crear una clase esttica es, por consiguiente, bsicamente igual que crear una clase que solo contiene miembros estticos y un constructor privado. Un constructor privado evita que se creen instancias de la clase. La ventaja de utilizar una clase esttica es que el compilador puede comprobar que no se agregue accidentalmente ningn miembro de instancia. El compilador garantizar que no se puedan crear instancias de esta clase. Las clases estticas son de tipo sealed y, por consiguiente, no pueden heredarse. No pueden heredar de cualquier clase, excepto Object. Las clases estticas no pueden contener un constructor de instancia; sin embargo, pueden contener un constructor esttico. Las clases no estticas tambin deben definir un constructor esttico si contienen miembros estticos que requieren una inicializacin no trivial. Para obtener ms informacin, vea Constructores estticos (Gua de programacin de C#).
Ejemplo
Este es un ejemplo de clase esttica que contiene dos mtodos que convierten la temperatura de grados Celsius a Fahrenheit y viceversa: C#
public static class TemperatureConverter { public static double CelsiusToFahrenheit(string temperatureCelsius) { // Convert argument to double for calculations. double celsius = Double.Parse(temperatureCelsius); // Convert Celsius to Fahrenheit. double fahrenheit = (celsius * 9 / 5) + 32; return fahrenheit; } public static double FahrenheitToCelsius(string temperatureFahrenheit) { // Convert argument to double for calculations. double fahrenheit = Double.Parse(temperatureFahrenheit); // Convert Fahrenheit to Celsius. double celsius = (fahrenheit - 32) * 5 / 9;
return celsius; } } class TestTemperatureConverter { static void Main() { Console.WriteLine("Please select the convertor direction"); Console.WriteLine("1. From Celsius to Fahrenheit."); Console.WriteLine("2. From Fahrenheit to Celsius."); Console.Write(":"); string selection = Console.ReadLine(); double F, C = 0; switch (selection) { case "1": Console.Write("Please enter the Celsius temperature: "); F = TemperatureConverter.CelsiusToFahrenheit(Console.ReadLine()); Console.WriteLine("Temperature in Fahrenheit: {0:F2}", F); break; case "2": Console.Write("Please enter the Fahrenheit temperature: "); C = TemperatureConverter.FahrenheitToCelsius(Console.ReadLine()); Console.WriteLine("Temperature in Celsius: {0:F2}", C); break; default: Console.WriteLine("Please select a convertor."); break; } // Keep the console window open in debug mode. Console.WriteLine("Press any key to exit."); Console.ReadKey(); } } /* Example Output: Please select the convertor direction 1. From Celsius to Fahrenheit. 2. From Fahrenheit to Celsius. :2 Please enter the Fahrenheit temperature: 20 Temperature in Celsius: -6.67 Press any key to exit. */
Miembros estticos
Una clase no esttica puede contener mtodos, campos, propiedades o eventos estticos. El miembro esttico es invocable en una clase incluso si no se ha creado ninguna instancia de la clase. El nombre de clase, y no el nombre de instancia, es el que tiene acceso al miembro esttico. Solo existe una copia de un miembro esttico, independientemente del nmero de instancias que se creen de la clase. Los mtodos y propiedades estticos no pueden tener acceso a los campos y eventos no estticos de su tipo contenedor y no pueden tener acceso a una variable de instancia de ningn objeto a menos que se pase explcitamente en un parmetro de mtodo. Es ms habitual declarar una clase no esttica con algunos miembros estticos que declarar toda una clase como esttica. Dos usos comunes de los campos estticos son mantener un recuento del nmero de objetos de los que se han creado instancias y almacenar un valor que se debe compartir entre todas las instancias. Los mtodos estticos se pueden sobrecargar pero no invalidar, porque pertenecen a la clase y no a una instancia de la clase. Aunque un campo no se puede declarar como static const, un campo const es esencialmente esttico en su comportamiento. Pertenece al tipo, no a las instancias del tipo. Por tanto, se puede tener acceso a los campos de constante mediante la misma notacin ClassName.MemberName que se utiliza para los campos estticos. No se requiere ninguna instancia de objeto. C# no admite las variables local estticas (variables que se declaran en el mbito del mtodo). Los miembros estticos de la clase se declaran mediante la incorporacin de la palabra clave static antes del tipo de valor devuelto del miembro, tal como se muestra en el ejemplo siguiente: C#
public class Automobile { public static int NumberOfWheels = 4; public static int SizeOfGasTank { get { return 15; } } public static void Drive() { } public static event EventType RunOutOfGas; // Other non-static fields and properties... }
Los miembros estticos se inicializan antes de obtener acceso al miembro esttico por primera vez y antes de llamar al constructor esttico, si ste existe. Para tener acceso a un miembro
esttico de la clase, utilice el nombre de la clase en lugar de un nombre de variable para especificar la ubicacin del miembro, tal como se muestra en el siguiente ejemplo: C#
Si la clase contiene campos estticos, proporcione un constructor esttico que los inicialice cuando se cargue la clase. Una llamada a un mtodo esttico genera una instruccin de llamada en el lenguaje intermedio de Microsoft (MSIL), mientras que una llamada a un mtodo de instancia genera una instruccin callvirt, que tambin comprueba las referencias de objeto nulas. Sin embargo, la mayora de las veces la diferencia de rendimiento entre ambas no es significativa.
Vea tambin
Referencia
static (Referencia de C#) Clases (Gua de programacin de C#) class (Referencia de C#) Constructores estticos (Gua de programacin de C#) Constructores de instancias (Gua de programacin de C#)
Conceptos
Gua de programacin de C# Diseo de clases estticas
DATOS TCNICOS
Microsoft Visual Studio 2010 Ultimate Espaol Spanish | ISO | 2.46 GB | Medicina Incl. | 2010 DESCRIPCIN Microsoft Visual Studio 2010 Ultimate es el exhaustivo paquete de herramientas de administracin del ciclo de vida de las aplicaciones para equipos. Con este paquete puede garantizar la calidad de los resultados, desde el diseo hasta la implementacin. Tanto si crea soluciones nuevas como si quiere mejorar las aplicaciones ya existentes, Visual Studio 2010 Ultimate le permite hacer realidad su idea gracias a que admite un nmero cada vez mayor de plataformas y tecnologas (incluidos los sistemas informticos en cloud y en paralelo). Elimine no reproducible con IntelliTrace
La novedosa caracterstica IntelliTrace hace que el argumento no reproducible sea cosa del pasado. Los evaluadores pueden archivar errores enriquecidos y modificables con informacin del sistema e
incluir, incluso, una instantnea del entorno. De ese modo, los desarrolladores pueden reproducir el error informado en el estado en el que se encontr. Conozca la arquitectura existente
El Explorador de arquitectura ayuda a conocer y liberar el valor de los activos de cdigo existentes y sus interdependencias. Se pueden producir modelos detallados de cmo est construida exactamente una aplicacin e, incluso, analizar en profundidad reas especficas para conocerlas mejor. Garantice el cumplimiento de la arquitectura
Use el nuevo diagrama de capas para definir y comunicar la arquitectura de la aplicacin lgica y validar artefactos de cdigo con respecto a la arquitectura necesaria. Los diagramas de capas ayudan a que los esfuerzos de desarrollo sigan su curso para que la aplicacin se adapte a su idea original. Adopte pruebas manuales
Visual Studio Test Professional 2010, parte de Visual Studio 2010 Ultimate, proporciona una herramienta nica para capturar y actualizar requisitos de pruebas, automatizar la navegacin de pruebas manuales y acelerar la solucin, y aceptar el ciclo mediante la captura de todo el contexto de la prueba. Esto proporciona a los desarrolladores todo lo que necesitan para garantizar que pueda reproducirse cualquier error. Sea proactivo acerca de la administracin gil de un proyecto
Visual Studio 2010 Ultimate est optimizado para el proceso de desarrollo iterativo actual con caractersticas que ayudan a mantener la productividad y a reaccionar frente a posibles riesgos antes de que se produzcan. Puede supervisar el estado del proyecto mediante informes que se generan automticamente. Adems, administre la capacidad del proyecto con datos histricos y documentos de planificacin basados en Microsoft Excel. CARACTERSTICAS DE VISUAL STUDIO 2010 ULTIMATE
Microsoft Visual Studio 2010 Ultimate incluye potentes herramientas que simplifican todo el proceso de desarrollo de aplicaciones, de principio a fin. Los equipos pueden observar una mayor productividad y ahorro de costes al utilizar caractersticas de colaboracin avanzadas, as como herramientas de pruebas y depuracin integradas que le ayudarn a crear siempre un cdigo de gran calidad. Administracin del ciclo de vida de las aplicaciones (ALM)
La creacin de aplicaciones de xito requiere un proceso de ejecucin uniforme que beneficie a todos los componentes del equipo. Las herramientas de ALM integradas en Visual Studio 2010 Ultimate contribuyen a que las organizaciones colaboren y se comuniquen de forma efectiva en todos los niveles,
y a que se hagan una idea precisa del estado real del proyecto, lo que garantiza que se ofrezcan soluciones de gran calidad al tiempo que se reducen los costos. Depuracin y diagnstico
Visual Studio 2010 Ultimate presenta IntelliTrace, una valiosa caracterstica de depuracin que hace que el argumento no reproducible sea cosa del pasado. Los evaluadores pueden archivar errores enriquecidos y modificables para que los desarrolladores puedan reproducir siempre el error del que se informe en el estado en el que se encontr. Otras caractersticas incluyen anlisis de cdigo esttico, mtricas de cdigo y creacin de perfiles. Herramientas de prueba
Visual Studio 2010 Ultimate incorpora todas nuestras herramientas avanzadas de pruebas para ayudarle a garantizar la calidad del cdigo en todo momento. Aprovchese de las pruebas de IU codificadas, que automatizan la realizacin de pruebas de la interfaz de usuario en aplicaciones basadas en web y en Windows, as como de pruebas manuales, Test Professional, pruebas de rendimiento de web, pruebas de carga, cobertura de cdigo y otras caractersticas completas que no se encuentran en otras ediciones de Visual Studio. Arquitectura y modelado
El Explorador de arquitectura de Visual Studio 2010 Ultimate ayuda a entender los activos de cdigo existentes y otras interdependencias. Los diagramas por capas ayudan a garantizar el cumplimiento de la arquitectura y permiten validar artefactos de cdigo con respecto al diagrama. Adems, Visual Studio 2010 Ultimate admite los cinco diagramas de UML ms comunes que conviven junto con su cdigo. Desarrollo de bases de datos
El desarrollo de bases de datos requiere el mismo cuidado y atencin que el desarrollo de aplicaciones. Visual Studio 2010 Ultimate es consciente de ello y proporciona potentes herramientas de implementacin y administracin de cambios que garantizan que la base de datos y la aplicacin estn siempre sincronizadas. Entorno de desarrollo integrado
Visual Studio 2010 Ultimate le permite ponerse al mando. Aprovchese de las caractersticas personalizables como, por ejemplo, compatibilidad con varios monitores, de modo que pueda organizar y administrar su trabajo como quiera. Tambin puede dar rienda suelta a su creatividad utilizando los diseadores visuales para mejorar las ltimas plataformas, incluido Windows 7. Compatibilidad con la plataforma de desarrollo
Tanto si crea soluciones nuevas como si quiere mejorar las aplicaciones ya existentes, Visual Studio 2010 Ultimate le permite hacer realidad su idea en una gran variedad de plataformas, entre las que se
incluyen Windows, Windows Server, Web, Cloud, Office y SharePoint, entre otras, todo en un nico entorno de desarrollo integrado. Team Foundation Server
Team Foundation Server (TFS) es la plataforma de colaboracin sobre la que se asienta la solucin de administracin de ciclo de vida de aplicaciones de Microsoft. TFS automatiza y simplifica el proceso de entrega de software, y proporciona rastreabilidad completa y la posibilidad de comprobar en tiempo real el estado de los proyectos (para todos los miembros del equipo) con potentes herramientas de elaboracin de informes y paneles. Lab Management
Visual Studio 2010 Ultimate ofrece un conjunto completo de caractersticas de laboratorio de pruebas, incluido el aprovisionamiento de entornos a partir de plantillas, la configuracin y el desmontaje de entornos virtuales y entornos de puntos de comprobacin. (Lab Management estar disponible como candidato a la versin comercial como RTM y se distribuir posteriormente.) Suscripcin a MSDN
Visual Studio 2010 Ultimate con MSDN es la oferta ms completa para los desarrolladores. Adems de todas las caractersticas incluidas en Visual Studio 2010 Professional con MSDN y Visual Studio 2010 Premium con MSDN, Ultimate con MSDN incluye ms horas de uso de Azure, acceso no Visual Studio a Team Foundation Server a travs de Teamprise y software de administracin de pruebas y laboratorio. REQUISITOS DEL SISTEMA
Requisitos
de
software
Windows XP (x86) con Service Pack 3 todas las ediciones, excepto Starter Edition Windows Vista (x86 y x64) con Service Pack 1 todas las ediciones, excepto Starter Edition Windows 7 (x86 y x64) Windows Server 2003 (x86 y x64) con Service Pack 2 Windows Server 2003 R2 (x86 y x64) Windows Server 2008 (x86 y x64) con Service Pack 2 Windows Server 2008 R2 (x64)
Arquitecturas compatibles:
Requisitos de hardware
Equipo con un procesador de al menos 1,6 GHz 1024 MB de RAM Espacio disponible en disco duro de 3 GB Unidad de disco duro de 5.400 RPM Tarjeta de vdeo compatible con DirectX 9 con una resolucin de 1280 x 1024 o superior Unidad de DVD-ROM
CAPTURA
ENLACES PRIVADOS
Visual.Studio.Ultimate.2010.SPANiSH INICIA SESIN Y COMENTA PARA VER LOS ENLACES. REGISTRATE Y COMENTA PARA VER LOS ENLACES. ENLACES PBLICOS
Visual.Studio.Ultimate.2010.SPANiSH X7 | Freakshare | DepositFiles | UploadBox | FileFactory | Hotfile | NetLoad FileServe | SharingMatrix | Uploaded Descarga Directa: Descargar Contrasea/Password: www.intercambiosvirtuales.org
http://www.microsoft.com/es-es/download/details.aspx?id=12187