Nullables
Check this post on c# nullables and how to use them
readonly
La palabra clave readonly
hace que no se pueda asignar después de que el constructor acabe.
public class Age
{
private readonly int _year;
public Age(int year)
{
_year = year;
}
public void OverwriteYear()
{
_year = 1967; // Compilation error
}
}
readonly vs const
readonly
values can be computed dynamically, (!) but need to be assigned before the constructor exits (!).
In the other hand const
are implicitly static.
public class ReadonlyVsConst
{
public const int I_VALUE = 2; // HAS TO be assigned on declaration.
public readonly int I_RO_VALUE; // Can be assigned on the constructor.
public ReadonlyVsConst()
{
I_RO_VALUE = 3;
}
}
var
vs dynamic
Con var
se declara una variable cuyo tipo se infiere a partir de la expresión que se le asigna. pero el uso de var no significa que la variable sea dinámica.
var i = 10;
int i2 = i + 1;
i = 20; // this fails
string s = i; // this also fails
var k = null; // also fails
dynamic
no se sabe que tipo va a ser en tiempo de compilacion pero si en tiempo de ejecucion. dynamic si que permite declarar una variable dinámica
dynamic i = 12;
int i2 = i + 1;
i = "20"; // OK
string s = i; // OK
dynamic k = null; // OK
Regiones
Son como comentarios pero el código entre regiones se puede comprimir en vs code.
#region
var mensaje = "Hola"
#endregion
Como usar palabras reservadas
Las palabras reservadas como if
se pueden usar si se pone un @
delante.
var if = 2; // fails
var @if = 2; // OK
Cuando se añaden nuevas keywords, se hace como palabras clave contextuales. Esto evita problemas de compilación para programas con versiones anteriores.