Bezeichner sollten ein korrektes Präfix aufweisen

Aktualisiert: November 2007

     TypeName

IdentifiersShouldHaveCorrectPrefix

CheckId

CA1715

Kategorie

Microsoft.Naming

Unterbrechende Änderung

Unterbrechend – Wenn für Schnittstellen ausgelöst.

Nicht unterbrechend – Wenn für generische Typparameter ausgelöst.

Ursache

Der Name einer extern sichtbaren Schnittstelle beginnt nicht mit dem Großbuchstaben "I".

- oder -

Der Name eines generischen Typparameters für einen extern sichtbaren Typ oder eine extern sichtbare Methode beginnt nicht mit dem Großbuchstaben "T".

Regelbeschreibung

Gemäß der Konvention beginnen die Namen bestimmter Programmierelemente mit einem bestimmten Präfix.

Schnittstellennamen sollten mit dem Großbuchstaben "I" und einem weiteren Großbuchstaben anfangen. Diese Regel meldet Verstöße für Schnittstellennamen wie "MyInterface" und "IsolatedInterface".

Der erste Buchstabe des Namens eines generischen Parameters muss ein großes T sein. Wenn der Parametername weitere Buchstaben enthält, sind die weiteren Buchstaben beliebig, müssen jedoch ebenfalls Zeichen in Großschreibung sein. Diese Regel meldet Verstöße für Namen generischer Typparameter wie "V" und "Type".

Durch Benennungskonventionen erhalten Bibliotheken, die auf die Common Language Runtime abzielen, ein einheitliches Erscheinungsbild. Dadurch wird der Lernaufwand für neue Softwarebibliotheken verringert. Zudem wird das Kundenvertrauen dahingehend gestärkt, dass die Bibliothek von einem erfahrenen Entwickler für verwalteten Code erstellt wurde.

Behandlung von Verstößen

Benennen Sie den Bezeichner um, sodass er das korrekte Präfix aufweist.

Wann sollten Warnungen unterdrückt werden?

Unterdrücken Sie keine Warnung dieser Regel.

Beispiel

Im folgenden Beispiel wird eine falsch benannte Schnittstelle dargestellt.

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

Im folgenden Beispiel wird der vorherige Verstoß durch Hinzufügen des Präfixes 'I' zur Schnittstelle korrigiert.

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

Im folgenden Beispiel wird ein falsch benannter generischer Typparameter dargestellt.

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
    {

    };
}

Im folgenden Beispiel wird der vorherige Verstoß durch Hinzufügen des Präfixes 'T' zum generischen Typparameter korrigiert.

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
    {

    };
}

Verwandte Regeln

Bezeichner sollten kein falsches Präfix aufweisen