# Ejemplo básico de sobrecarga Este código contiene un método sobrecargado llamado Hola : class Example { public static void Hello(int arg) { Console.WriteLine("int"); } public static void Hello(double arg) { Console.WriteLine("double");
LEER# Crear árboles de expresión con una expresión lambda El siguiente es el árbol de expresión más básico creado por lambda. Expression<Func<int, bool>> lambda = num => num == 42; Para crear árboles de expresión a mano, se debe usar Expression clase. La expresión anterior sería equi
LEERUn evento es una notificación de que algo ha ocurrido (como un clic del mouse) o, en algunos casos, está a punto de ocurrir (como un cambio de precio). Las clases pueden definir eventos y sus instancias (objetos) pueden generar estos eventos. Por ejemplo, un botón puede contener un evento de clic q
LEER# Implementando INotifyPropertyChanged en C# 6 La implementación de INotifyPropertyChange puede ser propenso a errores, ya que la interfaz requiere especificar el nombre de la propiedad como una cadena. Para hacer la implementación más robusta, un atributo CallerMemberName se puede usar. class C :
LEER# C# 6.0:inicializar una propiedad implementada automáticamente Cree una propiedad con getter y/o setter e inicialice todo en una línea: public string Foobar { get; set; } = "xyz"; # Inicializando propiedad con un campo de respaldo public string Foobar { get { return _foobar; }
LEER# Propiedades implementadas automáticamente Las propiedades implementadas automáticamente se introdujeron en C# 3. Una propiedad implementada automáticamente se declara con un getter y setter vacíos (accesorios): public bool IsValid { get; set; } Cuando se escribe una propiedad implementada aut
LEER# clase Filtro-consulta Esta clase contiene valores de filtros predicados. public class QueryFilter { public string PropertyName { get; set; } public string Value { get; set; } public Operator Operator { get; set; } // In the query {a => a.Name.Equals("Pedro")} //
LEER# Usando la sintaxis lambda para crear un cierre Ver comentarios para la discusión de los cierres. Supongamos que tenemos una interfaz: public interface IMachine<TState, TInput> { TState State { get; } public void Input(TInput input); } y luego se ejecuta lo siguiente: IMachine<
LEEREl siguiente tema presentará una forma de trabajar con Json utilizando el lenguaje C# y los conceptos de serialización y deserialización. # Ejemplo de Json simple { "id": 89, "name": "Aldous Huxley", "type": "Author", "books"
LEER# Desbordamiento de enteros Hay una capacidad máxima que un entero puede almacenar. Y cuando superes ese límite, volverá al lado negativo. Para int , es 2147483647 int x = int.MaxValue; //MaxValue is 2147483647 x = unchecked(x + 1); //make operation explicitly uncheck
LEER# Redirigir la salida de registro con TraceListeners Puede redirigir la salida de depuración a un archivo de texto agregando un TextWriterTraceListener a la colección Debug.Listeners. public static void Main(string[] args) { TextWriterTraceListener myWriter = new TextWriterTraceListener(@"
LEERUn seguimiento de pila es una gran ayuda al depurar un programa. Obtendrá un seguimiento de la pila cuando su programa arroje una excepción y, a veces, cuando el programa finalice de forma anormal. # Rastreo de pila para una excepción NullReferenceException simple en Windows Forms Vamos a crear un
LEER# Variables tipadas implícitamente (var) El var La palabra clave permite a un programador escribir implícitamente una variable en tiempo de compilación. var las declaraciones tienen el mismo tipo que las variables declaradas explícitamente. var squaredNumber = 10 * 10; var squaredNumberDouble = 10.
LEER# Parámetros opcionales y argumentos con nombre Podemos omitir el argumento en la llamada si ese argumento es un argumento opcional. Cada argumento opcional tiene su propio valor predeterminado. Tomará el valor predeterminado si no proporcionamos el valor. Un valor predeterminado de un argumento op
LEER# Asíncrono y espera async y await son dos operadores destinados a mejorar el rendimiento liberando subprocesos y esperando a que se completen las operaciones antes de seguir adelante. Aquí hay un ejemplo de cómo obtener una cadena antes de devolver su longitud: //This method is async because: //1
LEEREsta sexta iteración del lenguaje C# la proporciona el compilador Roslyn. Este compilador salió con la versión 4.6 de .NET Framework, sin embargo, puede generar código de manera compatible con versiones anteriores para permitir apuntar a versiones anteriores del marco. El código de la versión 6 de C
LEERC# 7.0 es la séptima versión de C#. Esta versión contiene algunas características nuevas:soporte de idiomas para tuplas, funciones locales, out var declaraciones, separadores de dígitos, literales binarios, coincidencia de patrones, expresiones de lanzamiento, ref return y ref local y lista de miemb
LEER# XmlDocument vs XDocument (Ejemplo y comparación) Hay varias formas de interactuar con un archivo Xml. Documento XML XDocumento XmlReader/XmlWriter Antes de LINQ to XML, usábamos XMLDocument para manipulaciones en XML, como agregar atributos, elementos, etc. Ahora LINQ to XML usa XDocument par
LEER# Traducir una consulta LINQ a una consulta SQL El IQueryable y IQueryable<T> interfaces permite a los desarrolladores traducir una consulta LINQ (una consulta integrada en el lenguaje) a una fuente de datos específica, por ejemplo, una base de datos relacional. Toma esta consulta LINQ escrit
LEERReflection es un mecanismo de lenguaje C# para acceder a propiedades de objetos dinámicos en tiempo de ejecución. Por lo general, la reflexión se usa para obtener información sobre el tipo de objeto dinámico y los valores de los atributos del objeto. En la aplicación REST, por ejemplo, la reflexión
LEER