TEMAS de C sharp
Mostrando del 61 al 70 de 100 registros
Estos son algunos ejemplos para que vean que en la programación hay muchas formas de hacer las cosas, aunque siempre hay una que es la más eficiente, aunque casi nunca es muy evidente.
Veamos como invertir un string de tres formas distintas. Por ejemplo, si tenemos el string “puntopeek”, el método devolvería “keepotnup”.
Presento un método de ordenación que ha dado muy buenos resultados y es considerado el método de ordenación más rápido que existe, de ahí viene su nombre tan sugerente: QuickSort.
Los árboles son una de las estructuras de datos más comunes en la programación de software para almacenar y procesar datos, gracias a sus innumerables aplicaciones. En este post veremos algunas características de los árboles y las implementaciones de algunos métodos y propiedades usando C#.
En programación un array (muchos lo llaman vector) es una zona de almacenamiento que contiene elementos de un mismo tipo (enteros, booleanos, fechas). En principio todos las arrays son de una dimensión, pero se pueden simular fácilmente arrays multidimensionales. Los más fáciles de "ver" o imaginar son los de dos (un tablero de ajedrez) y tres dimensiones (el cubo de Rugby).
El principal motivo de este artículo, es que la mayor parte de los usuarios no saben como interactuar con el usuario a través de la consola (lo cual es comprensible), y no tienen una forma dinámica de probar sus códigos. Generalmente cuando nos enseñan a programar, parten de la parte de como crear métodos, la sintaxis del lenguaje, las estructuras de control (for, foreach, etc) y se pasan por alto la parte de como crear una aplicación, donde el usuario vea resultados a través de la consola.
C#, como la mayoría de los lenguajes modernos permite la sobrecarga de operadores, o sea la capacidad de redefinir operadores para una clase. No todos los operadores pueden ser sobrecargados, además existen restricciones relativas a cuando pueden ser sobrecargados ciertos operadores, como la definición de == y != que debe hacerse conjuntamente.
En algunas ocasiones el sentido común puede ser una guía mas bien engañosa. Sobre todo cuando tratamos problemas simples en los cuales se ven envueltos, a veces sin que estemos completamente conscientes de ello, números grandes.
Es común encontrarnos con problemas que involucran conjuntos de elementos los cuales hay manejar como tales, o sea garantizando que no contengan elementos repetidos y que estén definidas las operaciones de union, interseccion y diferencia.
Aquí dejo un ejemplo de una clase que he nombrado ObjectSet que implementa estos servicios sobrecargando los operadores +, - y * para realizar las operaciones de unión, diferencia e intersección respectivamente.
Los lenguajes, como casi todo en este universo que tiende a la entropía, van evolucionando y ganando complejidad con el tiempo. Así nos encontramos con la paradoja de que cuanto más completa es la sintaxis, más ilegible se puede volver el código.
Por ejemplo, la máxima que decía “escribe la menor cantidad de código, que vaya lo más rápido posible”, tiene un orden de prioridad menor frente a paradigmas de programación más modernos como Clean Code o KISS.
Por ello ahora quiero compartir una técnica para facilitar la legibilidad de nuestros programas y que trata de la sobrecarga de los métodos.
En esta ocasión, vamos a profundizar en el uso de Win32® y otras bibliotecas existentes desde nuestro código.
Dos preguntas que se plantean con frecuencia los usuarios de C# son: "¿Por qué tengo que escribir código especial para utilizar elementos que están integrados en Windows®? y ¿Por qué el marco no puede hacerlo directamente?". Cuando el equipo de marcos llevaba a cabo su trabajo en .NET, se plantearon el modo de hacer que Win32 estuviese disponible para los programadores de .NET. Descubrieron que el conjunto de API de Win32 era *inmenso*. No disponían de los recursos necesarios para codificar, probar y documentar interfaces administradas para la totalidad de Win32, por lo que se vieron obligados a establecer prioridades y centrarse en las más relevantes. Aunque numerosas operaciones habituales poseen interfaces administradas, existen secciones completas de Win32 que no quedan cubiertas.