CA1724: Type Names Should Not Match Namespaces (Los nombres de tipo no deben coincidir con los espacios de nombres)
Propiedad | Value |
---|---|
Identificador de la regla | CA1724 |
Título | Los nombres de tipo no deben coincidir con los espacios de nombres |
Categoría | Nomenclatura |
La corrección es problemática o no problemática | Problemático |
Habilitado de forma predeterminada en .NET 8 | No |
Causa
Un nombre de tipo coincide con un nombre de espacio de nombres al que se hace referencia que tiene uno o más tipos visibles externamente. En la comparación de nombres no se distingue entre mayúsculas y minúsculas.
Descripción de la regla
Los nombres de tipos creados por el usuario no deben coincidir con los nombres de los espacios de nombres a los que se hace referencia y que tienen tipos visibles externamente. Infringir esta regla puede reducir la utilidad de la biblioteca.
Cómo corregir infracciones
Cambie el nombre del tipo para que no coincida con el nombre de un espacio de nombres al que se hace referencia que tenga tipos visibles externamente.
Cuándo suprimir las advertencias
Para el nuevo desarrollo, no hay escenarios conocidos donde se deba suprimir una advertencia de esta regla. Antes de suprimir la advertencia, considere detenidamente cómo puede que los usuarios de la biblioteca se confundan con el nombre coincidente. En el caso del envío de librerías, es posible que tenga que suprimir una advertencia de esta regla.
Supresión de una advertencia
Si solo quiere suprimir una única infracción, agregue directivas de preprocesador al archivo de origen para deshabilitar y volver a habilitar la regla.
#pragma warning disable CA1724
// The code that's violating the rule is on this line.
#pragma warning restore CA1724
Para deshabilitar la regla de un archivo, una carpeta o un proyecto, establezca su gravedad en none
del archivo de configuración.
[*.{cs,vb}]
dotnet_diagnostic.CA1724.severity = none
Para obtener más información, consulte Procedimiento para suprimir advertencias de análisis de código.
Ejemplo
namespace MyNamespace
{
// This class violates the rule
public class System
{
}
}