CompilaciónSintaxisIdentificadores y palabras claveLiterales, puntuadores y operadoresComentariosTipo BásicoEjemplos de tipos predefinidosEjemplos de tipos personalizadosTipos y conversionesTipos de valor frente a tipos de referenciaTaxonomía de tipos predefinidaTipos numéricosLiterales numéricosConversiones numéricasOperadores aritméticosOperadores de incremento y decrementoOperaciones integrales especializadasTipos integrales de 8 y 16 bitsValores flotantes y dobles especialesdoble Versus decimalErrores de redondeo de números realesTipos y operadores booleanosOperadores de igualdad y comparaciónOperadores condicionalesCadenas y caracteresTipo de cadenaCadenas UTF-8MatricesInicialización del elemento por defectoÍndices y rangosMatrices multidimensionalesExpresiones simplificadas de inicialización de matricesVariables y parámetrosLa pila y el montónAsignación DefinitivaValores por defectoParámetrosvar-Variables locales tipificadas implícitamenteNuevas expresiones de tipo objetivoExpresiones y operadoresExpresiones de asignaciónPrecedencia y asociatividad de los operadoresTabla de operariosOperadores nulosOperador Nulo-CoalescenteOperador de asignación de coalescencia nulaOperador nulo-condicionalDeclaracionesDeclaracionesDeclaraciones de expresiónDeclaraciones de selecciónDeclaraciones de iteraciónDeclaraciones de saltoEspacios de nombresEspacios de nombres en archivosLa Directiva de usoLa Directiva de uso globalutilizando estáticaReglas dentro de un espacio de nombresTipos de alias y espacios de nombresClasesCamposConstantesMétodosConstructores de instanciaDeconstructoresInicializadores de objetosEsta ReferenciaPropiedadesIndexadoresConstructores primarios (C# 12)Constructores estáticosClases estáticasFinalizadoresTipos y métodos parcialesEl nombre del OperadorHerenciaPolimorfismoFundición y conversiones de referenciaMiembros de la función virtualClases abstractas y miembros abstractosOcultar miembros heredadosFunciones y clases de selladoLa palabra clave baseConstructores y herenciaSobrecarga y resoluciónEl objeto TipoBoxeo y UnboxingComprobación de tipos estática y en tiempo de ejecuciónEl método GetType y el operador typeofLista de miembros del objetoIgual, IgualReferencia y GetHashCodeEl método ToStringEstructurasSemántica de la construcción de estructurasEstructuras y funciones de sólo lecturaModificadores de accesoAsambleas de amigosTope de accesibilidadInterfacesAmpliar una interfazImplementación explícita de la interfazImplementar virtualmente los miembros de la interfazReimplementar una interfaz en una subclaseMiembros por defecto de la interfazMiembros estáticos de la interfazEnumsConversiones EnumBanderas EnumsOperadores EnumTipos anidadosGenéricosTipos genéricosMétodos genéricosDeclarar parámetros de tipotypeof y tipos genéricos no vinculadosEl Valor Genérico por defectoRestricciones genéricasSubclasificación de tipos genéricosDeclaraciones genéricas autorreferentesDatos estáticosCovarianzaContravarianzaDelegadosEscribir métodos plug-in con delegadosObjetivos de instancias y métodos estáticosDelegados multidifusiónTipos genéricos de delegadosLos delegados Func y AcciónCompatibilidad de delegadosEventosPatrón de eventos estándarAccesorios para eventosExpresiones lambdaParámetros Lambda por defecto (C# 12)Captura de variables externasExpresiones lambda frente a métodos localesMétodos anónimosSentencias try y excepcionesLa cláusula de capturaEl bloque definitivoLanzar excepcionesPropiedades clave de System.ExceptionEnumeración e IteradoresEnumeraciónInicializadores de colecciones y expresiones de coleccionesIteradoresSemántica de los iteradoresComponer secuenciasTipos de valores anulablesNullable<T> EstructConversiones anulablesEncajonar/desencajonar valores nulosElevación del operariobool? con los operadores & y |Tipos anulables y operadores nulosTipos de referencia anulablesMétodos de extensiónEncadenamiento de métodos de extensiónAmbigüedad y resoluciónTipos anónimosTuplasNombrar elementos de tuplaDeconstruir tuplasRegistrosDefinir un registroMutación no destructivaConstructores primariosComparación de Registros e IgualdadPatronesvar PatrónPatrón constantePatrones relacionalesCombinadores de patronesPatrones tupla y posicionalPatrones de propiedadLista de patronesLINQFundamentos de LINQEjecución diferidaOperadores de consulta estándarEncadenamiento de operadores de consultaExpresiones de consultaLa palabra clave letContinuaciones de consultaGeneradores múltiplesÚnete aPedidosAgrupaciónOfType y RepartoEncuadernación dinámicaVinculación estática frente a vinculación dinámicaEncuadernación a medidaEncuadernación en idiomasRuntimeBinderExceptionRepresentación en tiempo de ejecución de la dinámicaConversiones dinámicasvar Versus dinámicoExpresiones dinámicasResolución dinámica de la sobrecarga de los miembrosFunciones no invocablesSobrecarga del operadorFunciones del operadorSobrecarga de operadores de igualdad y comparaciónConversiones implícitas y explícitas personalizadasAtributosClases de atributosParámetros de Atributos Nombrados y PosicionalesObjetivos de los atributosEspecificar varios atributosEscribir atributos personalizadosRecuperar atributos en tiempo de ejecuciónAtributos de la información de llamadaLlamadorExpresiónArgumentoFunciones asíncronasLas palabras clave await y asyncCaptación del Estado LocalEscribir funciones asíncronasParalelismoExpresiones lambda asíncronasFlujos asíncronosPolimorfismo estáticoOperadores polimórficosMatemáticas genéricasCódigo inseguro y punterosPuntos básicosCódigo inseguroLa Declaración fijaEl operador puntero a miembroLa palabra clave stackallocBúferes de tamaño fijovacío*Punteros de funciónDirectivas del preprocesadorAdvertencia pragmaDocumentación XMLEtiquetas estándar de documentación XML