Documentación oficial: Delegates
Documentación oficial: Modelo de programación asíncrona basado en tareas respuesta correta --> var contacts = new List
var type = typeof(SomeType);
var attribute = type.GetCustomAttribute<SomeAttribute>();
var typeof(MyPresentationModel).Should().BeDecoratedWith<SomeAttribute>();
Attribute.GetCustomAttribute, typeof(SubControllerActionToViewDataAttribute)
Attribute.GetCustomAttribute(typeof(ExampleController), typeof(SubControllerActionToViewDataAttribute))
Documentación oficial: Reflexión
private static object objA;
private static object objB;
private static void performTaskA()
{
lock (objB)
{
Thread.Sleep(1000);
lock (objA) { }
}
}
private static void PerformTaskB()
{
lock (objA)
{
lock (objB) { }
}
}
Documentación oficial: Deadlocks y condiciones de carrera
Documentación oficial: Tipos Anónimos
Documentación oficial: Clase Dictionary<TKey,TValue>
== compara contenidos.== compara todos los valores.== compara identidad de referencia.== compara tipos de valor primitivosDocumentación oficial: Deadlocks y condiciones de carrera
Documentación oficial: Objetos
var<<!---->T> userData = new <<!---->T> { name = "John", age = 32 };var userData = new { name = "John", age = 32 };AType userData = new AType { name = "John", age = 32 };Anonymous<T> userData = new Anonymous<T> { name = "John", age = 32 };Documentación oficial: Tipos Anónimos
public void userInput(string charParameters) { }
string[] employees = { "Joe", "Bob", "Carol", "Alice", "Will" };
IEnumerable<string> employeeQuery = from person in employees
orderby person
select person;
foreach(string employee in employeeQuery)
{
Console.WriteLine(employee);
}
dotnetpattern: Operador LINQ OrderBy
Documentación oficial: Resumen de Language Integrated Query (LINQ)
/_/ - Una Línea
/_ - Múltiples líneas// Múltiples líneas
/_ Una Línea _///\* Múltiples líneas
/ Una Línea// Una Línea
/* Múltiples líneas */Documentación oficial: Usando Propiedades
Documentación oficial: Clases Abstractas y Selladas y Miembros de Clase
Documentación oficial: Características del thread pool
Documentación oficial: Herencia
Documentación oficial: Sobrecarga de operadores
Documentación oficial: Resumen de Language Integrated Query (LINQ)
[Documentación oficial: Clase List
Documentación oficial: Iniciando tareas concurrentemente
Documentación oficial: Introducción a eventos
enum AppState { OffLine, Loading, Ready }
Documentación oficial: Tipos de enumeración
public interface INameable
{
string FirstName { get; set; }
string LastName { get; }
}
Documentación oficial: interface
Documentación oficial: Introducción a clases
Documentación oficial: Clases y métodos genéricos
public delegate void AuthCallback(bool validUser);
public static AuthCallback loginCallback = Login;
public static void Login()
{
Console.WriteLine("Valid user!");
}
public static void Main(string[] args)
{
loginCallback(true);
}
Documentación oficial: Clases Abstractas y Selladas y Miembros de Clase
public int age="28"
c-sharpcorner: Seguridad de Tipos en .NET
public class User {}
DeserializableAttribute.public serializable class User {}.SerializableAttribute.private serializable class User {}.Documentación oficial: Clase SerializableAttribute
Documentación oficial: Delegates
Documentación oficial: Miembros Estáticos
Documentación oficial: Introducción a eventos
Documentación oficial: try-catch
Documentación oficial: Herencia de clases
Documentación oficial: namespace
private int _password;
pubic int Password = { get; set; }
private int _password;
public int Password = _password;
private int _password;
public int Password
{
get -> _password;
set-> _password = value;
}
private int _password;
public int Password
{
get { return _password; }
set { _password = value; }
}
Documentación oficial: Usando Propiedades
Documentación oficial: Clase ThreadPool
Documentación oficial: Serialización
Documentación oficial: Delegates
Documentación oficial: Excepciones
break y continue?break se usa para salir de múltiples declaraciones de iteración, mientras que continue solo puede salir de bloques de código que tienen iteraciones únicas.break literalmente sale de una declaración de flujo de control, mientras que continue ignora el resto de la declaración de control o iteración y comienza la siguiente.break literalmente sale del código de flujo de control actual y lo detiene completamente, mientras que continue sigue ejecutando el código después de que se lanza una excepción.break salta de una iteración y luego procede con el resto del código de flujo de control, mientras que continue detiene el código ejecutándose completamente.Documentación oficial: Declaraciones de salto
get público y set privado?public int userID <get, set>;public int userID [get, private set];public int userID { get; private set; }public int userID = { public get, private set };Documentación oficial: Propiedades
Sobrescribir métodos virtuales en una clase derivada es obligatorio.Sobrescribir métodos virtuales en una clase derivada no es posible.Los métodos virtuales siempre necesitan una implementación por defecto.Los métodos virtuales no pueden tener una implementación por defecto.sobrecarga de recursossalto de hilosdeadlock y condiciones de carreranada, ya que esto es para lo que sirve el threadingDocumentación oficial: condiciones de carrera
Una cadena no puede ser nullable.string? myVariablestring myVariable = nullstring(null) myVariableDocumentación oficial: tipos de valor nullable
No, puedes declarar un out en la lista de parámetros.No, las variables Out ya no son parte de C#.Debes declararla si es un tipo primitivo.Sí.People[..^2]No puedes hacer esto en C#.People[..^3]People[^2]Explicación: Puedes hacer esto en C#. Sin embargo, ninguna de las respuestas anteriores es correcta. Puedes acceder a los últimos dos elementos usando People[^2..]. Por favor, consulta issue #3354 para más información.
Ver también: Documentación Oficial: Rangos
en tiempo de compilacióndespués del tiempo de ejecuciónen tiempo de ejecucióndespués del tiempo de compilaciónLa multitarea de hilos permite que el código se ejecute concurrentementeLa multitarea de hilos permite que el código se ejecute solo cuando se maneja un evento de usuario.La multitarea de hilos bloquea el código para que no se ejecute simultáneamente para proteger la memoria.La multitarea de hilos suma bloques de código de un solo hilo.private string LastName;
Documentación Oficial: Niveles de Accesibilidad
string[] partyInvites = new string[10];string[][] partyInvites = new string[10][];string[][] partyInvites = new string[10]();string <[]> partyInvites = new string <[10]>;Documentación Oficial: Arrays Dentados
void MyFunction()
{
{
int a = 10;
int b = 20;
int c = a + b;
}
Console.WriteLine(c);
}
public class PremiumUser sub User {}public class PremiumUser: User {}public class PremiumUser -> sub User {}public class User: PremiumUser {}static InputManager.DebugString();InputManager().DebugString;new InputManager().DebugString();InputManager.DebugString();public string? nickname
un método especial llamado automáticamente cada vez que se crea o actualiza un objetoun método implícito llamado automáticamente cuando se procesan grupos de hilos concurrentementeun método explícito llamado automáticamente cuando el compilador comienza a ejecutarseun método especial llamado automáticamente cada vez que se elimina o destruye un objetotypealias CustomInt = System.Int32;var<T> CustomInt = Int32;using CustomInt = System.Int32;type CustomInt = System<Int32>;un objeto de tipo de paso por referenciaun tipo de valor que no puede contener constantesconjunto de constantes integrales con nombreun objeto de tipo de paso por valorpara declarar una variable miembro que no se puede calcular en tiempo de ejecuciónpara declarar un campo cuyo valor se puede asignar solo antes de que salga el constructorpara declarar una variable estática que debe establecerse en tiempo de compilaciónpara declarar una variable estática que debe establecerse en tiempo de ejecuciónLos métodos almacenan variables.Los métodos son acciones que un objeto puede realizarUn método se puede usar solo una vez por archivo C#.Un método determina el estado de una propiedad dada.Documentación oficial: Métodos (Guía de Programación C#)
ArgumentNullValueInvalidFormatFoundExceptionIndexOutOfPocketArgumentNullExceptionDocumentación oficial: Clase ArgumentNullException
Documentación Oficial: Interfaces (Guía de Programación C#)
finally en una declaración try-catch-finally de C#?finally se usa para manejar excepciones.finally se usa para definir la lógica principal de la declaración try-catch.finally es opcional y no es requerido en las declaraciones try-catch.finally se usa para asegurar que cierto código se ejecute independientemente de si ocurre una excepción.Documentación Oficial: try-catch (Referencia C#)
Documentación Oficial: Clase Dictionary<TKey, TValue>