La cuestión es: ¿por qué no compila el siguiente código?
class Program {
public static void Main() {
int f = 0; int x = 0; int y = 0;
System.Console.WriteLine(
"{0} {1}",
f < x, // is f smaller than x?
y > (-1) // is y greater than -1?
);
}
}
Publicado por José M. Aguilar a las 8:05 a. m.
Etiquetas: c#, c#bizarro, curiosidades
Ahí van los enlaces recopilados durante la semana pasada. Espero que os resulten interesantes. :-)
Por si te lo perdiste...
- Crear manualmente instancias de clases usando el proveedor de servicios de .NET
José María Aguilar - Invalidar el contenido cacheado por el tag helper "cache" de ASP.NET Core MVC
José María Aguilar
.NET Core / .NET
- What’s new in F#
Kathleen Dollard - Prefer using Stream to byte[]
Bohdan Stupak - Supporting integration tests with WebApplicationFactory in .NET 6: Exploring .NET Core 6
Andrew Lock - Bite-Size .NET 6 - LINQ OrDefault() Overloads
Matthew Jones - IAsyncEnumerable with yield in C#
Marinko Spasojevic - C# Tip: use the Ping class instead of an HttpClient to ping an endpoint
Davide Bellone - Exploring C# 10: Global Using Declarations
Dave Brock - C# 10.0: Extended Property Patterns – Use the Dot Token to Access Nested Members
Thomas Claudius Huber - How to Create a PNG File with Transparent Background from a Powerpoint Slide in C#
Roland Weigelt - C# Records - The good, bad & ugly
Gary Woodfine
Hace unos días hablábamos de las directivas using
globales, un interesante añadido a C# 10 que permite importar espacios de nombres en todos los archivos de código del proyecto, sin necesidad de repetir cientos de veces las mismas líneas en sus encabezados. Simplemente, si un namespace es interesante para nuestro proyecto, lo declaramos como global en algún punto y será lo mismo que si lo hubiéramos hecho en cada uno de los archivos .cs:
global using System;
global using System.Text;
global using System.Text.Json;
global using MyProject.Model;
...
Bien podían haberlo dejado aquí porque ya es una mejora sustancial respecto a lo que tenemos, pero no, el equipo de diseño de C# sigue introduciendo detalles que pueden hacernos la vida más sencilla. Es el caso de los implicit usings que, de la misma forma, acompañan a .NET 6 y C# 10.
Ahí van los enlaces recopilados durante la semana pasada. Espero que os resulten interesantes. :-)
Por si te lo perdiste...
- 3 formas de saber si un componente se está ejecutando en Blazor Server o WebAssembly
José María Aguilar - Registro y obtención de múltiples implementaciones de servicios en ASP.NET Core, y un caso práctico
José María Aguilar
.NET Core / .NET
- Announcing .NET 6 Release Candidate 2
Richard Lander - CQRS Validation Pipeline with MediatR and FluentValidation
Marinko Spasojevic - Downloading a SSL/TLS certificate in .NET
Gérald Barré - World's Smallest C# Program (featuring
N
)
Niels Rasmussen - Updating NuGet packages from command-line
Thomas Ardal - The Problem with C# 10 Implicit Usings
Muhammad Rehan Saeed - Hot Reload in .NET 6- An Overview
Mohamed Yasir Kader Sha - Bite-Size .NET 6 - Chunk() in LINQ
Matthew Jones - Dotnet could not execute because the application was not found or a compatible .NET SDK is not installed
Scott Hanselman - Enable .NET CLI Tab Completion
Cody Merritt Anhorn
Ahí van los enlaces recopilados durante la semana pasada. Espero que os resulten interesantes. :-)
Por si te lo perdiste...
- La interfaz IMiddleware: Middlewares tipados per request en ASP.NET Core
José María Aguilar - Un vistazo a los patrones relacionales y combinadores, lo nuevo de C# 9 para exprimir el pattern matching
José María Aguilar
.NET Core / .NET
- Code Coverage in .NET
Marinko Spasojevic - WebView2 Flashing when changing TabControl Tabs
Rick Strahl - Bite-Size .NET 6 - DateOnly and TimeOnly
Matthew Jones - Everything That Every .NET Developer Needs To Know About Disposable Types
David Mccarter - Exploring C# 10: Save Space with File-Scoped Namespaces
Dave Brock - Unit Testing Legacy Applications with JustMock
Peter Vogel - 6 Tips for Writing Elegant C# Code
Assis Zang
Seguro que estáis acostumbrados a ver y escribir las, a veces extensas, listas de directivas using
encabezando vuestros archivos de código fuente C#. Aunque ciertamente los entornos de desarrollo actuales son de bastante ayuda a la hora de introducirlos e incluso a veces nos permiten colapsarlos, son unos grandes consumidores del valioso espacio vertical de nuestros monitores:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
// ... (muchos using más)
namespace MyApplication
{
public class MyClass
{
...
}
}
Pero si habéis trabajado con Razor, ya sea para crear vistas MVC/Razor Pages o bien desde Blazor, seguro que os habrán encantado los archivos tipo _ViewImports.cshtml
o _Imports.razor
, pues permiten introducir directivas que se apliquen a todos los archivos Razor del proyecto.
¿No sería buena idea llevar esto mismo a nivel del lenguaje?
Ahí van los enlaces recopilados durante la semana pasada. Espero que os resulten interesantes. :-)
Por si te lo perdiste...
- Cómo saber si un objeto no es nulo (edición C# 9)
José María Aguilar - El hosting in-process de ASP.NET Core 2.2
José María Aguilar
.NET Core / .NET
- Is C# Getting Too Complex?
Michael Moreno - J4JLogger: A Serilog Wrapper that Provides Source Code Information
Mark Olbert - Grouping Assertions in Tests
Steve Smith - Events in C#
Marinko Spasojevic - Compress Strings With .NET and C#
Khalid Abuhakmeh - Remove all event handlers from an event in C#
Rod Stephens - C# 10.0: Global Using Directives – Make Important Namespaces Available in Your Whole Project
Thomas Claudius Huber - Differences between Hashtable vs Dictonary vs ConcurrentDictionary vs ImmutableDictionary
Scott Hanselman