Modifiers
Modificadores
https://docs.microsoft.com/es-es/dotnet/csharp/language-reference/keywords/modifiers
Access Modifiers
public
El acceso no esta restringido.
private
El acceso esta limitado al tipo contenedor.
internal
El acceso esta limitado al ensamblado actual.
protected
El acceso esta limitado a la clase contenedora o a los derivados de la clase contenedora.
protected internal
El acceso esta limitado al ensamblado actual o a los derivados de la clase contenedora.
abstract
Indica que una clase esta diseñada solo para ser una clase base de otras clases.
abstract class ShapesClass
{
abstract public int Area();
}
async
Indica que el método es asíncrono y se ejecutara en segundo plano, para esto se debe descargar y referenciar la librería por nuget.
public async Task<int> nameFunction(){
return await number; //Validar este funcionamiento
}
const
Se usa para declarar una campo constante el cual no puede ser modificado.
const int x = 0;
override
Es necesario para ampliar o modificar la implementación abstracta o virtual de un método, propiedad,o evento.
class Square : ShapesClass
{
int side = 0;
public override int Area()
{
return side * side;
}
}
partial
Las definiciones de tipo parcial permiten dividir la definición de una clase, estructura o interfaz en varios archivos.
namespace PC
{
partial class A
{
int num = 0;
void MethodA() { }
partial void MethodC();
}
}
namespace PC
{
partial class A
{
void MethodB() { }
partial void MethodC() { }
}
}
readonly
Corresponde a un modificador que se puede usar en campos. Las asignaciones a los campos que aparecen en la declaración solo pueden tener lugar en la propia declaración o en un constructor de la misma clase. Solo se puede modificar cuando se crea la clase.
class Age
{
readonly int _year;
Age(int year)
{
_year = year;
}
void ChangeYear()
{
_year = 1990;
}
}
sealed
Cuando se aplica este modificador impide que otras clases hereden de ella.
class X
{
protected virtual void F() { Console.WriteLine("X.F"); }
protected virtual void F2() { Console.WriteLine("X.F2"); }
}
class Y : X
{
sealed protected override void F() { Console.WriteLine("Y.F"); }
protected override void F2() { Console.WriteLine("Y.F2"); }
}
class Z : Y
{
// Attempting to override F causes compiler error CS0239.
// protected override void F() { Console.WriteLine("C.F"); }
// Overriding F2 is allowed.
protected override void F2() { Console.WriteLine("Z.F2"); }
}
static
Indica que una variable o método es propio de esa clase mas no de los objetos instanciados. Las clases estáticas y sus miembros se utilizan para crear datos y funciones a las que se puede tener acceso sin crear una instancia de la clase.
Cuando una clase se declara static solo contiene métodos static pero se pueden crear métodos static sin que la clase sea static.
Los métodos static no pueden ser sobrecargados.