Come evitare confusione sui nomi dei tipi

Nei diversi linguaggi di programmazione i tipi gestiti di base vengono identificati con termini differenti. Nella progettazione delle librerie di classi è necessario evitare di utilizzare terminologia specifica dei diversi linguaggi. Per evitare confusione sui nomi dei tipi, seguire le regole descritte in questa sezione.

Utilizzare nomi che descrivono il significato di un tipo anziché il tipo. Nel caso raro che un parametro non abbia un significato semantico oltre il proprio tipo, utilizzare un nome generico. Una classe che supporta la scrittura in un flusso di un'ampia gamma di tipi di dati, ad esempio, potrebbe disporre dei metodi riportati di seguito.

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

Non creare nomi di metodi specifici di un linguaggio, come nell'esempio riportato di seguito.

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

Nel caso estremamente raro che sia necessario creare un metodo denominato in modo univoco per ciascun tipo di dati di base, utilizzare un nome di tipo universale. Nella tabella riportata di seguito sono elencati i nomi dei principali tipi di dati e i relativi sostituti universali.

Nome del tipo C# Nome del tipo Visual Basic Nome del tipo JScript Nome del tipo Visual C++ Rappresentazione Ilasm.exe Nome del tipo universale
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

Una classe che supporta la lettura di un'ampia gamma di tipi di dati da un flusso, ad esempio, potrebbe disporre dei metodi riportati di seguito.

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

L'esempio riportato in precedenza è preferibile rispetto all'alternativa specifica del linguaggio riportata di seguito.

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

Vedere anche

Istruzioni di progettazione per gli sviluppatori di librerie di classi | Sistema di tipi comune