Udostępnij za pośrednictwem


CA1715: Identyfikatory powinny mieć odpowiedni prefiks

TypeName

IdentifiersShouldHaveCorrectPrefix

CheckId

CA1715

Kategoria

Microsoft.Naming

Zmiana kluczowa

Kluczowa - gdy wywoływana na interfejsach.

Niekluczowa - gdy wywołana na parametrach typu generycznego.

Przyczyna

Nazwa interfejsu, który jest widoczny z zewnątrz, nie zaczyna się z wielkiej litery 'I'.

-lub-

Nazwa parametru typu generycznego, widocznego na zewnątrz typu lub metody, nie zaczyna się od litery 'T'.

Opis reguły

Według konwencji, nazwy niektórych elementów programowania zaczynają się określonym prefiksem.

Nazwy interfejsów powinny rozpoczynać się wielką literą 'I', po której następuje inna wielka litera.Ta reguła zgłasza naruszenia nazw interfejsów takich jak 'MyInterface' i 'IsolatedInterface'.

Nazwy parametrów typu generycznego powinny rozpoczynać się od wielkiej litery 'T' i opcjonalnie po niej mogą następować inne wielkie litery.Ta reguła zgłasza naruszenia nazw parametrów typu generycznego takich jak 'V' i 'Typ'.

Konwencje nazewnictwa przewidują wspólny wygląd dla bibliotek docelowych dla środowiska wykonawczego języka wspólnego.Zmniejsza to krzywą zdobywania wiedzy, która jest wymagana dla nowych bibliotek oprogramowania i zwiększa ufność klientów w to, że biblioteka została opracowana przez osobę, która ma doświadczenie w rozwijaniu kodu zarządzanego.

Jak naprawić naruszenia

Zmienić identyfikator, tak aby posiadał poprawny prefiks.

Kiedy pominąć ostrzeżenia

Nie pomijaj ostrzeżeń dla tej reguły.

Przykład

Poniższy przykład pokazuje niepoprawnie nazwany interfejs.

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

Poniższy przykład rozwiązuje poprzednie naruszenie dodając prefiks interfejsu '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();
    };
}

Poniższy przykład pokazuje niepoprawnie nazwany parametr typu generycznego.

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
    {

    };
}

Poniższy przykład rozwiązuje poprzednie naruszenie dodając prefiks parametru typu generycznego '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
    {

    };
}

Powiązane reguły

CA1722: Identyfikatory nie powinien mieć niepoprawny prefiks