Ver por etiquetas
Todas las etiquetas »
C# (
RSS)
Bueno… empieza el 2012: el último año de nuestra existencia si los maias no andaban errados (unos tíos que hacían pirámides hace miles de años no pueden equivocarse demasiado). Pero bueno… hasta que no llegue el apocalípsis, ahí estaremos! ¡Al pie del cañón! De todos modos, para empezar nada más que un post ligerito, sobre C# Básico , ya sabéis esta serie de posts donde vamos explorando cosillas, sin ningún orden en particular, básicas del lenguaje. Sí, ya sé que el ritmo de posts de la serie es...
Muy buenas! Para ser sinceros esta es una pregunta que me he hecho siempre y, creo yo, que se han hecho muchas personas que vienen de C++. ¿Debería tener C# referencias const? El hecho es que hasta ayer no había encontrado una explicación razonada y de alguien de peso (quien mejor que Eric Lippert , cuyo blog es lectura obligada) del porque C# no las incluye. Al final del post hay el enlace al post de stackoverflow en el que Eric explica sus razones por las que C# no tiene referencias const. En este...
En el post anterior vimos como gracias a C# 5 y las nuevas palabras clave async y await el uso de métodos asíncronos era tan sencillo como ir al bar y tomarnos una cerveza. Como resumen del post vimos que async nos permitía indicar que un método quería realizar llamadas asíncronas y await nos permitía esperarnos al retorno de una llamada asíncrona. Si no has leído el post, antes de leer este échale un vistazo. En el post de ayer hice una simplificación, porque no quería liar las cosas más de la cuenta...
Muy buenas! Como dije en el post anterior estoy trasteando un poco con la Developers Preview de Windows 8 y la nueva API WinRT para crear aplicaciones Metro. El tema está en que esta nueva API está diseñada de forma muy asíncrona. Por suerte en C# 5 el uso de métodos asíncronos se ha simplificado mucho gracias a dos nuevas palabras clave: async y await. Y dado que, creedme, vais a tener que usarlas en cuanto os pongáis con WinRT me he decidido escribir este post para comentarlas un poco :) async...
La verdad es que ahora hacía bastantes meses que no publicaba nada de la serie “C# básico”. En esta serie pongo posts sobre temas básicos del lenguaje. No es un libro por fascículos, ni un tutorial al uso puesto que los posts no tienen orden en concreto y nacen a partir de inquietudes que observo (mayoritariamente en los foros, pero también por correos que recibo). Todos los posts de esta serie los podéis ver aquí . En el post de hoy quiero hablar de la diferencia entre objetos y referencias ya que...
Hola a todos! Desde hace algunos días estoy usando Resharper . La verdad no era, como decirlo, muy proclive para instalármelo, ya que había tenido no muy buenas experiencas con CodeRush . Seguramente no eran culpa de CodeRush sinó mías, pero bueno… Al final me lo instalé y debo decir que estoy gratamente sorprendido: Es una auténtica maravilla. Una cosa interesante de Resharper es que te hace sugerencias (que puedes desactivar si quieres, por...
Muy buenas! Hacía tiempo que no escribía nada de la serie C# Básico . En esta serie voy tratando temas (sin ningún orden en particular) que considero que son fundamentos más o menos elementales del lenguaje. No es un tutorial al uso, cada post es independiente del resto y como digo no están ordenados por nada en particular. El post de hoy nace a raíz de una pregunta que vi en los foros de msdn ( http://social.msdn.microsoft.com/Forums/es-ES/vcses/thread...
Ayer Lluis escribía este gran post: How to: Obtener controles de un formulario con generics . Como bien dice es una pregunta… recurrente en todos los sitios :) Lo bueno de eso del desarrollo es que para todo hay varias soluciones, así que aquí os propongo otra, pero usando Linq. Personalmente me encanta Linq, supongo que es porqué siempre me han fascinado los lenguajes funcionales… Antes que nada tenemos que solucionar un temilla: Linq funciona sobre IEnumerable<T> pero la propiedad Controls...
Hola a todos! Este es el tercer post de esa “serie” de C# Básico. En el primero vimos las interfaces y en segundo intenté responder a la pregunta de que es la herencia . Hoy quiero hablaros de un tema sobre el que bastante gente tiene dificultades y sobre el que hay bastante confusión, pero que en el fondo es mucho más simple de lo que parece! Sí, me estoy refiriendo a los delegates (o delegados). 1. La necesidad de los delegates Cuando queremos enviar...
Hola a todos! Despues de la buena acogida que tuvo la primera entrega de C# Básico (dedicada a las interfaces) , me gustaría abordar hoy una de las cuestiones que se pusieron en los comentarios: ¿Qué es la herencia? De nuevo os recuerdo que esta serie es vuestra : no tengáis reparos en pedir posts de algún tema en concreto o aclaraciones e intentaré contestaros dentro de mis conocimientos :) En la wikipedia se define herencia como: En orientación a objetos la herencia es el mecanismo fundamental...
Hola a todos! El otro día recibí un correo que decía lo siguiente: ¿Podrías escribir algo sobre el uso de Interfaces? Yo por ahi he leido que es algo recomendado crear interfaces que es como un patrón.. Yo la verdad no las uso en mis proyectos pero me gustaría saber para qué sirven y porque se deberían usar y en qué casos. Reconozco que es un correo para reflexionar: muchas veces tendemos a escribir sobre lo más : lo más avanzado, lo más novedoso, lo más cool … y quizá nos olvidamos de que hay gente...
El otro día, Oren Eini (aka Ayende ) escribió en su blog un post, en respuesta a otro post escrito por Phil Haack (aka Haacked ). En su post Phil mostraba un método extensor para comprobar si un IEnumerable<T> era null o estaba vacío (y sí, Phil usa Any() en lugar de Count() para comprobar si la enumeración está vacía ): public static bool IsNullOrEmpty<T>( this IEnumerable<T> items) { return items == null || !items.Any(); } Aquí tenéis el post de Phil: Checking For Empty Enumerations...
Leyendo este post de Gisela sobre la serialización XML me he decidido escribir este… es lo que tiene la realimentación en los blogs :) El uso de atributos que menciona Gis en su post es realmente genial. A mi me encanta: me permite definir mis clases en un momento y es muy útil cuando leemos datos xml de una fuente externa. Pero hay un detalle que puede ser un problema: El esquema XML está totalmente acoplado de la clase que tiene los datos. Si estamos leyendo de dos fuentes externas que tienen esquemas...
Hola a todos! Un post para comentar paranoias varias sobre algo que parece tan simple como redefinir GetHashCode()… Primero las dos normas básicas que supongo que la mayoría ya conoceréis: Si se redefine el método Equals() de una clase debería redefinirse también el método GetHashCode(), para que pueda cumplirse la segunda norma que es… Si la llamada a Equals para dos objetos devuelve true , entonces GetHashCode() debe devolver el mismo valor para ambos objetos. Una forma fácil y rápida de implementar...
Hola a todos! El otro día me preguntaban sobre las diferencias entre usar var, object y dynamic, y por lo que he podido observar no todo el mundo tiene claro que diferencias hay en cada caso, de ahí que me haya decidido escribir este post. 1. Inferencia de tipos (var) Para ver el uso de var lo mejor es un ejemplo: var i = 10; // Ok int i2 = i + 1; // Ok i = "20" ; // error CS0029: Cannot implicitly convert type 'string' to 'int' string s = i; // error CS0029: Cannot implicitly...
Post cortito… ;-) El otro día estaba revisando código y vi algo parecido a lo siguiente (C#): int x = 1; int y = x++; Si os pregunto los valores de x e y al final de este código… ¿cual seria vuestra respuesta? No lo preguntéis a Visual Studio… pensadlo. ¿Ya lo teneis? Exacto: x vale 2 (es de esperar puesto que su valor se incrementa con ++), mientras que por su parte y vale 1. Es decir, el valor de x se incrementa después de la asignación. Quizá os parezca ilógico, pero está así especificado explícitamente...
Hola... qué tal? Imagina que en algún proyecto que estés haciendo, quieres ofrecer una combo para seleccionar colores. De acuerdo, ya se que hay otros métodos para hacer que el usuario seleccione un color, como usar el ColorDialog , pero a lo mejor te interesa que el usuario sólo pueda escoger colores de una lista predeterminada... Por suerte en .NET hacer que una combo dibuje sus elementos como nosotros queremos, es realmente simple... ¿quieres tener una...
¡Hola! Cada vez más existen frameworks y librerías que permiten usar objetos anónimos como si de diccionarios se tratase. Esto es muy cómodo porque permite realizar llamadas tal y como: Foo( new { x = 10, y = 20, Data = "Data" }); Por ejemplo, en ASP.NET MVC no se paran de hacer llamadas parecidas a esta… Internamente el método Foo utilizará reflection para iterar sobre las propiedades del objeto anónimo que recibe y obtener los datos. Si tenéis varios métodos que trabajan con IDictionary<string...