CA1715: Los identificadores deberían tener el prefijo correctoCA1715: Identifiers should have correct prefix

TypeNameTypeName IdentifiersShouldHaveCorrectPrefixIdentifiersShouldHaveCorrectPrefix
Identificador de comprobaciónCheckId CA1715CA1715
CategoríaCategory Microsoft.NamingMicrosoft.Naming
Cambio problemáticoBreaking Change Problemático: cuando se desencadena en interfaces.Breaking - when fired on interfaces.

Indivisible - cuando se genera en parámetros de tipo genérico.Non-breaking - when raised on generic type parameters.

MotivoCause

El nombre de una interfaz visible externamente no empieza por una mayúscula 'I'.The name of an externally visible interface does not start with an uppercase 'I'.

O bien-or-

El nombre de un parámetro de tipo genérico en un tipo visible externamente o el método no inicia con una mayúscula ' t '.The name of a generic type parameter on an externally visible type or method does not start with an uppercase 'T'.

Descripción de la reglaRule description

Por convención, los nombres de ciertos elementos de programación se inicie con un prefijo específico.By convention, the names of certain programming elements start with a specific prefix.

Nombres de interfaz deben empezar con una mayúscula 'I' seguida de otra letra mayúscula.Interface names should start with an uppercase 'I' followed by another uppercase letter. Esta regla notifica las infracciones de nombres de interfaz como 'MyInterface' y 'IsolatedInterface'.This rule reports violations for interface names such as 'MyInterface' and 'IsolatedInterface'.

Los nombres de parámetro de tipo genérico deben comenzar con una mayúscula ' t ' y, opcionalmente, puede ir seguida por otra letra mayúscula.Generic type parameter names should start with an uppercase 'T' and optionally may be followed by another uppercase letter. Esta regla notifica las infracciones de los nombres de parámetro de tipo genérico, como 'V' y 'Type'.This rule reports violations for generic type parameter names such as 'V' and 'Type'.

Las convenciones de nomenclatura proporcionan una apariencia común para las bibliotecas destinadas a Common Language Runtime.Naming conventions provide a common look for libraries that target the common language runtime. Esto reduce la curva de aprendizaje necesaria para las nuevas bibliotecas de software y aumenta la confianza del cliente respecto a que la biblioteca se haya desarrollado por parte de un especialista en desarrollo de código administrado.This reduces the learning curve that is required for new software libraries, and increases customer confidence that the library was developed by someone who has expertise in developing managed code.

Cómo corregir infraccionesHow to fix violations

Cambie el nombre el identificador se incluyen el prefijo correctamente.Rename the identifier so that it is correctly prefixed.

Cuándo Suprimir advertenciasWhen to suppress warnings

No suprima las advertencias de esta regla.Do not suppress a warning from this rule.

EjemploExample

El ejemplo siguiente muestra una interfaz denominada incorrectamente.The following example shows an incorrectly named interface.

using namespace System;

namespace Samples
{
    public interface class Book     // Violates this rule
    {
        property String^ Title
        {
            String^ get();
        }
        void Read();
    };
}
Imports System

Namespace Samples

    Public Interface Book      ' Violates this rule

        ReadOnly Property Title() As String

        Sub Read()

    End Interface

End Namespace
using System;

namespace Samples
{
    public interface Book   // Violates this rule
    {
        string Title
        {
            get;
        }

        void Read();        
    }
}

EjemploExample

El ejemplo siguiente corrige la infracción anterior agregando el prefijo de la interfaz 'I'.The following example fixes the previous violation by prefixing the interface with 'I'.

using System;

namespace Samples
{
    public interface IBook      // Fixes the violation by prefixing the interface with 'I'
    {
        string Title
        {
            get;
        }

        void Read();        
    }
}
using namespace System;

namespace Samples
{
    public interface class IBook  // Fixes the violation by prefixing the interface with 'I'
    {
        property String^ Title
        {
            String^ get();
        }
        void Read();
    };
}
Imports System

Namespace Samples

    Public Interface IBook  ' Fixes the violation by prefixing the interface with 'I'

        ReadOnly Property Title() As String

        Sub Read()

    End Interface

End Namespace

EjemploExample

El ejemplo siguiente muestra un parámetro de tipo genérico incorrectamente con nombre.The following example shows an incorrectly named generic type parameter.

using namespace System;

namespace Samples
{
    generic <typename Item>     // Violates this rule
    public ref class Collection
    {

    };
}
Imports System

Namespace Samples

    Public Class Collection(Of Item)    ' Violates this rule

    End Class

End Namespace
using System;

namespace Samples
{
    public class Collection<Item>   // Violates this rule
    {

    }
}

EjemploExample

En el ejemplo siguiente se corrige la infracción anterior agregando el prefijo de parámetro de tipo genérico ' t '.The following example fixes the previous violation by prefixing the generic type parameter with 'T'.

using namespace System;

namespace Samples
{
    generic <typename TItem>  // Fixes the violation by prefixing the generic type parameter with 'T'
    public ref class Collection
    {

    };
}
using System;

namespace Samples
{
    public class Collection<TItem>  // Fixes the violation by prefixing the generic type parameter with 'T'

    {

    }
}
Imports System

Namespace Samples

    Public Class Collection(Of TItem)  ' Fixes the violation by prefixing the generic type parameter with 'T'

    End Class

End Namespace

CA1722: Los identificadores no deberían tener el prefijo incorrectoCA1722: Identifiers should not have incorrect prefix