Partilhar via


Identificadores devem ter o prefixo correto

TypeName

IdentifiersShouldHaveCorrectPrefix

CheckId

CA1715

Category (Categoria)

Microsoft.Naming

Quebrando alterar

Quebrando - quando acionado em interfaces.

Não separáveis - quando acionado em parâmetros de tipo genérico.

Causa

O nome de uma interface visível externamente não inicia com um capital 'I'.

- ou -

O nome de um parâmetro de tipo genérico em um tipo visível externamente ou método não inicia com um capital ' t '.

Descrição da regra

Por convenção, os nomes de certos elementos de programação iniciar com um prefixo específico.

Nomes de interface devem começar com uma letra maiúscula 'I' seguido de outra letra em maiúscula.Esta regra relatórios violações de nomes de interface 'MyInterface' e 'IsolatedInterface'.

A primeira letra de um nome de parâmetro de tipo genérico deve ser um T. de letras maiúsculasSe o nome do parâmetro tiver duas ou mais letras, a segunda letra pode ser qualquer letra e também devem estar em maiúsculas.Esta regra relatórios violações de nomes de parâmetro de tipo genérico sistema autônomo 'V' e 'Tipo'.

Convenções de nomenclatura fornecem uma aparência comum para bibliotecas de destino o common linguagem tempo de execução.Isso reduz a curva de aprendizado necessária para novas bibliotecas de software e aumenta a confiança do cliente que a biblioteca foi desenvolvida por uma pessoa com experiência em desenvolvimento de código gerenciado.

Como corrigir violações

Renomeie o identificador para que ele é prefixado corretamente.

Quando suprimir avisos

Não suprimir um aviso da regra.

Exemplo

O exemplo a seguir mostra uma interface nomeada incorretamente.

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();        
    }
}
using namespace System;

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

O exemplo a seguir corrige a violação anterior pela colocação de um prefixo a interface com 'I'.

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
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();
    };
}

O exemplo a seguir mostra um parâmetro de tipo genérico chamado incorretamente.

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
    {

    }
}
using namespace System;

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

    };
}

O exemplo a seguir corrige a violação anterior pela colocação de um prefixo do parâmetro de tipo genérico com ' 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
using System;

namespace Samples
{
    public class Collection<TItem>  // Fixes the 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
    {

    };
}

Regras relacionadas

Identificadores não devem ter prefixo incorreto