ushort (Riferimenti per C#)

La parola chiave ushort indica un tipo di dati integrale che memorizza valori in base alla dimensione e all'intervallo indicati nella seguente tabella.

Type

Intervallo

Dimensione

Tipo .NET Framework

ushort

Da 0 a 65.535

Numero intero senza segno a 16 bit

System.UInt16

Valori letterali

È possibile dichiarare e inizializzare una variabile ushort come nell'esempio riportato di seguito:

ushort myShort = 65535;

Nella precedente dichiarazione il valore letterale integer 65535 viene convertito in modo implicito da int a ushort.Se il valore letterale integer è esterno all'intervallo consentito per ushort, viene generato un errore di compilazione.

Quando si chiamano metodi di overload, è necessario utilizzare un cast.Si considerino, ad esempio, i seguenti metodi di overload che utilizzano parametri ushort e int:

public static void SampleMethod(int i) {}
public static void SampleMethod(ushort s) {}

L'utilizzo del cast di ushort garantisce che venga chiamato il tipo corretto, ad esempio:

// Calls the method with the int parameter:
SampleMethod(5);
// Calls the method with the ushort parameter:
SampleMethod((ushort)5);  

Conversioni

Si verifica una conversione implicita predefinita da ushort in int, uint, long, ulong, float, double o decimal.

Si verifica una conversione implicita predefinita da byte o char in ushort.In tutti gli altri casi è necessario ricorrere a un cast per eseguire una conversione esplicita.Si considerino, ad esempio, le due variabili ushort seguenti x e y:

ushort x = 5, y = 12;

L'istruzione di assegnazione che segue provocherà un errore di compilazione poiché, per impostazione predefinita, l'espressione aritmetica a destra dell'operatore di assegnazione restituisce int.

ushort z = x + y;   // Error: conversion from int to ushort

Per correggere l'errore, utilizzare un cast:

ushort z = (ushort)(x + y);   // OK: explicit conversion 

È tuttavia possibile utilizzare le seguenti istruzioni, in cui la variabile di destinazione ha dimensioni di archiviazione uguali o superiori:

int m = x + y;
long n = x + y;

Si noti inoltre che non esiste alcuna conversione implicita dai tipi a virgola mobile a ushort.L'istruzione seguente, ad esempio, genera un errore di compilazione, a meno che non venga utilizzato un cast esplicito:

// Error -- no implicit conversion from double:
ushort x = 3.0; 
// OK -- explicit conversion:
ushort y = (ushort)3.0;

Per ulteriori informazioni sulle espressioni aritmetiche con tipi a virgola mobile e tipi integrali, vedere float e double.

Per ulteriori informazioni sulle regole di conversione numerica implicita, vedere Tabella delle conversioni numeriche implicite (Riferimenti per C#).

Specifiche del linguaggio C#

Per ulteriori informazioni, vedere la Specifiche del linguaggio C#. La specifica del linguaggio è la fonte ufficiale per la sintassi e l'utilizzo di C#.

Vedere anche

Riferimenti

Parole chiave di C#

Tabella dei tipi integrali (Riferimenti per C#)

Tabella dei tipi incorporati (Riferimenti per C#)

Tabella delle conversioni numeriche implicite (Riferimenti per C#)

Tabella delle conversioni numeriche esplicite (Riferimenti per C#)

UInt16

Concetti

Guida per programmatori C#

Altre risorse

Riferimenti per C#