¿Qué hay de nuevo sin tipo en C#?
Encontré el siguiente código en el trabajo:
throw new("some string goes here");
¿Es el new("some string goes here") una forma de crear cadenas en C # o es algo más?
El new() crea un objeto de un tipo que se puede inferir del contexto .
Así que en lugar de:
throw new System.Exception("hi");puedes usar esta forma abreviada en su lugar:
throw new ("hi");Similar,
var s = new string("hello");se puede reemplazar con:
string s = new("hello");En el caso específico de throw , throw new() es una forma abreviada de throw new Exception() . La función se introdujo en C# 9 y puede encontrar la documentación como nuevas expresiones de tipo Target .
Como puede ver, hay bastantes lugares donde se puede usar (siempre que se pueda inferir el tipo que se creará) para acortar el código.
El lugar donde más me gusta es para campos/propiedades:
private readonly Dictionary<SomeVeryLongName, List<AnotherTooLongName>> _data = new(); Como nota adicional, se desaconseja throw Exception ya que no es lo suficientemente específico para la mayoría de los casos, por lo que realmente no recomendaría throw new ("error"); . Hay muchas excepciones específicas para usar, y si ninguna de ellas funciona, considere crear una excepción personalizada.