Variable - shigeots/PracticeCSharpAndUnity GitHub Wiki
Variable
Es un dato que se aloja en la memoria para poder utilizarlo en el software o videojuego. Como el nombre indica variable es un dato que pueden variar durante la ejecución del software o videojuego.
Para poder utilizar una variable primero se debe declara o inicializar, es importante que el valor asignado sea compatible con el tipo de variable.
Por ejemplo, si declaramos una variable de tipo numérico, esta no puede contener una cadena de caracteres.
La sintaxis de una declaración de una variable es: (tipo_variable) (nombre_variable).
Por ejemplo:
int number;
Reglas para el nombre de una variable
- Los nombres de las variables no pueden comenzar por números, pero si puede formar parte del nombre.
int 2number; //Incorrecto
string 2PlayerName; //Incorrecto
int number2; //Correcto
string playerName2; //Correcto
- El nombre de una variable no puede tener espacios.
int number 2; //Incorrecto
string player name; //Incorrecto
int number2; //Correcto
string playerName; //Correcto
- El nombre de la variable no puede estar formado por operadores como +, -, !, etc.
//Incorrecto
int number1+number2;
string player-name;
string playerName!;
//Correcto
string player_name;
int _number;
- No puede haber dos variables que se llamen igual, aunque sean de distintos tipos, en el mismo ámbito.
//Incorrecto
int variable;
string variable;
//Correcto
int variable1;
string variable2;
- No pueden tener el nombre de palabras reservadas.
//Incorrecto
int if;
string for;
int int;
string string;
Las palabras reservadas son palabras especiales de un leguaje de programación especifico la cual se utiliza para cierta finalidad y el programador no lo puede utilizar para el nombre de una variable y clase. Palabras reservadas
- C# es “case sensitive”, es decir, que diferencia entre mayúsculas y minúsculas. A es distinto que a.
//Correcto
int number;
int Number;
string name;
string Name;
Tipos de variable
Variable primitiva o nativa
Los tipos de datos primitivos son aquellos que almacenan directamente el valor.
Las variables primitivas no cuenta con métodos, no son objetos, no necesitan una invocación para ser creados.
Cuadro de variable primitivas o nativos
| Tipo | Descripción | Rango o valor | Ejemplo |
|---|---|---|---|
| byte | Representa a un numero entero real positivo. Este tipo de variable utiliza 1 byte (8 bits). | 0 a 255 | byte number = 20; |
| sbyte | Representa a un número entero real. Este tipo de variable utiliza 1 byte (8 bits). | -128 a 127 | sbyte number = -120; |
| short | Representa a un numero entero real. Este tipo de variable utiliza 2 bytes (16 bits). | -32.768 a 32.767 | short number = 10528; |
| ushort | Representa a un numero entero real positivo. Este tipo de variable utiliza 2 bytes (16 bits). | 0 a 65.535 | ushort number = 30000; |
| int | Representa a un numero entero real. Este tipo de variable utiliza 4 bytes (32 bits). Es la variable tipo numérico mas utilizada. | -2.147.483.648 a 2.147.483.647 | int number = 100000; |
| uint | Representa a un numero entero real positivo. Este tipo de variable utiliza 4 bytes (32 bits). | 0 a 4.294.967.295 | uint number = 180000; |
| long | Representa a un numero entero real. Este tipo de variable utiliza 8 bytes (64 bits). | -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807 | long number = -11000; |
| ulong | Representa a un numero entero real positivo. Este tipo de variable utiliza 8 bytes (64 bits). | 0 a 18.446.744.073.709.551.615 | ulong number = 11111000 |
| float | Representa a un numero decimal. Este tipo de variable utiliza 4 bytes (32 bits). Se debe agregar al final la letra "F" en mayúscula o minúscula. | ±1.401298E−45 a ±3.402823E+38 | float number = -2.5f; |
| double | Representa a un numero decimal. Este tipo de variable utiliza 8 bytes (64 bits). Se puede agregar al final la letra "D" en mayúscula o minúscula. | ±4.94065645841246E−324 a ±1.79769313486232E+308 | double number = 5.5; |
| decimal | Representa a un numero decimal. Este tipo de variable utiliza 16 bytes (128 bits). Se puede agregar al final la letra "M" en mayúscula o minúscula. | −7.9228162514264337593543950335 a +7.9228162514264337593543950335 | decimal number = -2556.02; |
| char | Representa un carácter como numero, letra o símbolo según la tabla ASCII. Este tipo de variable utiliza 2 bytes (16 bits). El carácter debe estar dentro de la comilla simple. | Símbolos de la tabla de carácter ASCII | char caracter = 'A'; |
| bool | Solo puede contener dos valores true o false. Se utiliza para condiciones de lógica. Este tipo de variable utiliza 1 bytes (8 bits). | true o false | bool isReal = true; |
Tips
¿Cuándo usar el Tipo de dato float?
Puede usarse en situaciones en las que puedan existir errores de redondeo, y requieran el uso intensivo de procesamiento, como el dibujo de gráficas o juegos.
¿Cuándo usar el Tipo de dato double?
Puede usarse en situaciones que no requieran el uso de dinero, por ejemplo, en la creación de aplicaciones con gráficos, por ejemplo, videojuegos, y que los mismos requieran de una mayor precisión que un tipo de dato float.
¿Cuándo usar el Tipo de dato decimal?
Debe ser utilizado en aplicaciones de alta precisión, como por ejemplo, las financieras, o aquellas donde se hagan cálculos que requieran suma precisión.
Variable compuesto o complejas
Las variables compuesto cuenta con métodos, necesitan una invocación para ser creados.
Cuadro de variable compuesto o complejas
| Tipo | Descripción | Ejemplo |
|---|---|---|
| string | Secuencia o cadenas de caracteres. Utiliza 2 bytes (16 bits) por cada carácter. La cadena debe estar dentro de la comilla doble. | string name = "Armando"; |
Variable valor por defecto
Las variables primitivas al declarar la variable sin asignarle el valor automáticamente por defecto tiene un valor.
Anteriormente, con lenguajes como C ó C++, cuando declarabas una variable y no le asignabas un valor, ésta tenía un valor aleatorio, por ejemplo 36271, lo cual podía provocar problemas, si olvidábamos asignarle un valor a lo largo del problema.
int number1; //por defecto asigna 0
float number2; //por defecto asigna 0
char character; //por defecto asigna ''
bool isTrue; //por defecto asigna false
Variable nullable
Las variables primitivas no se le puede asignar el valor null. Pero a partir de C# 8.0 y posterior permite crear variables nullable. Para crear una variable null debe agregar el símbolo "?" después del tipo de variable.
int? number1 = null;
float? number2 = null;
char? character = null;
bool? isTrue = null;
Concatenar strings
La concatenación es el proceso de agregar una cadena al final de otra cadena.
Operador "+"
El operador + es la manera mas sencillo de concatenar cadenas y generar un código intuitivo. Aunque use varios operadores + en una instrucción, el contenido de la cadena se copiará solo una vez. Este operador lo podemos combinar con texto plano, strings, y otros tipos de variables convirtiéndolo en string.
// La cadena es: Armando Carpa Grande
string studentName = "Armando" + " " + "Carpa" + " " + "Grande";
// La cadena es: Gato volador
string firstWord = "Gato";
string secondWord = "volador";
string finalWord = firstWord + " " + secondWord;
String.Format
Un método para concatenar cadenas es String.Format. Este método funciona bien cuando se crea una cadena a partir de un número reducido de cadenas de componente. No es recomendable usarlo si tiene muchas variables a concatenar, ya que podría perder el sentido del orden de las variables creando confusión con el numero y orden.
Dentro de las comillas doble va el texto plano, dentro de las llaves va el número de la posición de la variable, iniciando desde la posición 0, fuera de ellas seguido de una coma se colocan las variables.
// La cadena es: El precio de la Nintendo Switch es 280 dolares.
string productName = "Nintendo Switch";
float productPrice = 280.00f;
string textString = String.Format("El precio de la {0} es {1} dolares.",
productName, productPrice);
Interpolación
La interpolación fue añadida en la versión C# 6, es una de las opciones más recomendada para concatenar cadenas ya que inserta la variable en el lugar que va a ser visualizada, evitando la confusión que se crea con String.Format y produce el mismo resultado. Otra ventaja de interpolación dentro de las llaves se puede realizar algunas operaciones como sumar números.
La sintaxis es más legible y fácil de crear, inicia con un modificador el carácter de $ seguido de comillas, dentro de las comillas va el contenido incluyendo las {} dentro de las llaves va la variable.
// La cadena es: El precio de la Nintendo Switch es 280 dolares.
string productName = "Nintendo Switch";
float productPrice = 280.00f;
string textString = $"El precio de la {productName} es {productPrice} dolares.";
// Operaciones en la llave
// La cadena es: El precio de la Nintendo Switch es 340 dolares.
string textString2 = $"El precio de la {productName} es {productPrice + 60.00f} dolares.";
En C Sharp (C#) tambien tiene otras opciones para realizar concatenaciones como:
- String.Concat
- String.Join
- StringBuilder.Append
- LINQ y Enumerable.Aggregate
Secuencias de escape
Las secuencias de escape se utilizan en los lenguajes de programación C y C ++ , y también en muchos más idiomas (con algunas variaciones) como Java y C # . Una secuencia de escape es una secuencia de caracteres que no se representa a sí misma cuando se utiliza dentro de un carácter o cadena literal, sino que se traduce en otro carácter o una secuencia de caracteres que pueden ser difíciles o imposibles de representar directamente.
Para utilizar la secuencia de escape las combinaciones de caracteres que consisten en una barra diagonal inversa ( \ ) seguida de una letra o una combinación de dígitos. Para representar un carácter de nueva línea, una comilla simple u otros caracteres de una constante de caracteres.
Tabla de algunas secuencias de escape de C#
| Secuencia | Descripción |
|---|---|
| \n | Nueva línea (new line). El cursor pasa a la primera posición de la línea siguiente. |
| \t | Tabulación horizontal. El cursor pasa a la siguiente posición de tabulación. |
| \' | Muestra una comilla simple. |
| \" | Muestra una comilla doble. |
| \\ | Muestra una barra invertida. |
// La cadena es:
// Hola mundo!!!
// Mi nombre es "Francisco"
string textString = "Hola mundo!!! \n Mi nombre es \"Francisco\"";
Literal de cadena textual (Verbatim literal)
Para poder interpretar string de forma literal se debe utilizar un modificador el carácter de @ al inicio de la cadena. Esto permite ignorar las secuencias de espacio y también permite crear string de múltiples líneas.
//Se va imprimir lo siguiente:
//C: emp
//uevo_archivo.txt
string filePath = "C:\temp\nuevo_archivo.txt";
//Para poder interpretar correctamente una ruta de archivo convertirlo en literal
string filePath = @"C:\temp\nuevo_archivo.txt";
Variable tipo var
Var es una variable de tipo implícito tiene la peculiaridad de que cuando se declara puede contener cualquier tipo, se le defina el tipo cuando asigne el valor a la variable. Este variable fue introducido a partir de la versión C# 3.0.
La variable var es una variable local significa que solo puede existir dentro de un método, no a nivel de clase, donde siempre se debe especificar el tipo.
public void ShowText()
{
var text;
text = "Hola mundo";
Debug.Log(text);
}
Al variable var también se le puede asignar una clase.
//Código de la clase Pokemon
public class Pokemon
{
public string name;
public int level;
public Pokemon(string name, int level)
{
this.name = name;
this.level = level;
}
}
//Código donde se utiliza la variable var para asignar una clase
public void ShowPokemonName()
{
var pokemon = new Pokemon("Pikachu", 15);
Debug.Log(pokemon.name);
}