Vermeiden von irreführenden Typnamen

In verschiedenen Programmiersprachen werden unterschiedliche Begriffe für die grundlegenden verwalteten Typen verwendet. Als Entwickler von Klassenbibliotheken müssen Sie sprachenspezifische Terminologie vermeiden. Halten Sie sich an die hier beschriebenen Regeln, um irreführende Typnamen auszuschließen.

Verwenden Sie Namen, die die Bedeutung eines Typs beschreiben, und nicht Namen, die den Typ beschreiben. Im seltenen Fall, dass hinter dem Typ eines Parameters keine semantische Bedeutung steht, verwenden Sie einen generischen Namen. Beispielsweise kann eine Klasse, die das Schreiben einer Vielzahl von Datentypen in einen Stream unterstützt, die folgenden Methoden aufweisen.

Sub Write(value As Double);
Sub Write(value As Single);
Sub Write(value As Long);
Sub Write(value As Integer);
Sub Write(value As Short);
[C#]
void Write(double value);
void Write(float value);
void Write(long value);
void Write(int value);
void Write(short value);

Erstellen Sie keine sprachenspezifischen Methodennamen, wie im folgenden Beispiel.

Sub Write(doubleValue As Double);
Sub Write(singleValue As Single);
Sub Write(longValue As Long);
Sub Write(integerValue As Integer);
Sub Write(shortValue As Short);
[C#]
void Write(double doubleValue);
void Write(float floatValue);
void Write(long longValue);
void Write(int intValue);
void Write(short shortValue);

Im äußerst seltenen Fall, dass es erforderlich ist, für jeden grundlegenden Datentyp eine eindeutig benannte Methode zu erstellen, verwenden Sie einen universellen Typnamen. Die folgende Tabelle listet die Namen grundlegender Datentypen und deren universelle Ersetzungen auf.

C#-Typname Visual Basic-Typname JScript-Typname Visual C++-Typname Ilasm.exe-Darstellung Universeller Typname
sbyte SByte sByte char int8 SByte
byte Byte byte unsigned char unsigned int8 Byte
short Short short short int16 Int16
ushort UInt16 ushort unsigned short unsigned int16 UInt16
int Integer int int int32 Int32
uint UInt32 uint unsigned int unsigned int32 UInt32
long Long long __int64 int64 Int64
ulong UInt64 ulong unsigned __int64 unsigned int64 UInt64
float Single float float float32 Single
double Double double double float64 Double
bool Boolean boolean bool bool Boolean
char Char char wchar_t char Char
string String string String string String
object Object object Object object Object

Beispielsweise kann eine Klasse, die das Lesen einer Vielzahl von Datentypen aus einem Stream unterstützt, die folgenden Methoden aufweisen.

ReadDouble()As Double
ReadSingle()As Single
ReadInt64()As Long
ReadInt32()As Integer
ReadInt16()As Short
[C#]
double ReadDouble();
float ReadSingle();
long ReadInt64();
int ReadInt32();
short ReadInt16();

Das obige Beispiel ist der folgenden, sprachenspezifischen Alternative vorzuziehen.

ReadDouble()As Double
ReadSingle()As Single
ReadLong()As Long
ReadInteger()As Integer
ReadShort()As Short
[C#]
double ReadDouble();
float ReadFloat();
long ReadLong();
int ReadInt();
short ReadShort();

Siehe auch

Entwurfsrichtlinien für die Entwicklung von Klassenbibliotheken | Allgemeines Typensystem