Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 19482|Respuesta: 2

[Fuente] C# 8.0 puede ser un tipo de referencia nula

[Copiar enlace]
Publicado el 26-3-2022 16:40:21 | | | |
Antes de C# 8.0, todos los tipos de referencia podían ser nulos. Los tipos de referencia nulos se refieren a un conjunto de características introducidas en C# 8.0 que pueden usarse paraMinimiza la probabilidad de que tu código provoque fallos en tiempo de ejecución。 Los tipos de referencia anulables incluyen tres características para ayudar a evitar estas excepciones, incluyendo la capacidad de marcar explícitamente los tipos de referencia como anulables:

  • Análisis de flujo estático optimizado para determinar si una variable es nula antes de que se deje de referenciar.
  • Atributos que se usan para anotar la API y que Stream Analytics determine el estado nulo.
  • Anotaciones de variables que los desarrolladores pueden usar para declarar explícitamente el estado nulo esperado de una variable.


El análisis de estado nulo y las anotaciones de variables están deshabilitados por defecto para proyectos existentes, lo que significa que todos los tipos de referencia siguen siendo anulables. A partir de .NET 6, estas funciones se activan por defecto para nuevos proyectos.

Documentación:El inicio de sesión del hipervínculo es visible.

Lo que un tipo de referencia puede ser nulo es hacerMinimiza la posibilidad de que tu aplicación muestre una Excepción System.NullReferenceEn tiempo de ejecución

En un proyecto que estoy desarrollando con .NET 6, creo una propiedad Name para una nueva propiedad que me muestra la siguiente advertencia:

Al salir del constructor, la propiedad no anulable "Name" debe contener un valor no nulo. Considera declarar la propiedad como puede ser nula.


Aunque es una advertencia, ¡es muy molesto! ¿Cómo puedo solucionar esta advertencia? El valor por defecto para la asignación es una cadena vacía, y el código es el siguiente:

Es decir, cuando la propiedad no se asigna manualmente, el valor por defecto de la propiedad es una cadena vacía.

Al usar una variable local,¿El tipo es de cuerda? también puede generar advertencias, como se muestra en la figura siguiente:



Solución, determinar si la variable es nula antes de usarla, y si lo es, no ejecutes el código de abajo, o creesLa variable nunca puede ser nula, puede usarseArgumentNullException.ThrowIfNull(assemblyFullName); ¡También se pueden eliminar las advertencias! En otras palabras, si la variable es nula, ¡lanzará una excepción directamente durante la ejecución!

Resumen: C# 8.0 introdujo esta función, y personalmente creo que es para mejorar el rigor de los desarrolladores y evitar cometer errores de bajo nivel.

Para más soluciones de método que puedan ser nulas, por favor consulte:El inicio de sesión del hipervínculo es visible.





Anterior:Consulta la dirección remota del Git del proyecto actual
Próximo:ASP.NET Core (doce) JS front-end, empaquetado y compresión CSS
Publicado el 26-3-2022 20:57:32 |
Aprende a aprender
Publicado el 28-03-2022 08:23:47 |
Ven a aprender
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com