Esporta (0) Stampa
Espandi tutto
Il presente articolo è stato tradotto automaticamente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale

Struttura Int32

Rappresenta un intero con segno a 32 bit.

Spazio dei nomi:  System
Assembly:  mscorlib (in mscorlib.dll)

[SerializableAttribute]
[ComVisibleAttribute(true)]
public struct Int32 : IComparable, IFormattable, 
	IConvertible, IComparable<int>, IEquatable<int>

Il tipo Int32 espone i seguenti membri.

  NomeDescrizione
Metodo pubblicoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreCompareTo(Int32) Confronta questa istanza con un valore intero con segno a 32 bit specificato e restituisce un'indicazione dei loro valori relativi.
Metodo pubblicoSupportato da XNA FrameworkCompareTo(Object) Confronta questa istanza con un oggetto specificato e restituisce un'indicazione dei loro valori relativi.
Metodo pubblicoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreEquals(Int32) Restituisce un valore che indica se questa istanza è uguale a un valore Int32 specificato.
Metodo pubblicoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreEquals(Object) Restituisce un valore che indica se questa istanza è uguale ad un oggetto specificato. (Esegue l'override di ValueType.Equals(Object)).
Metodo pubblicoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreGetHashCode Restituisce il codice hash per questa istanza. (Esegue l'override di ValueType.GetHashCode()).
Metodo pubblicoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreGetType Ottiene il Type dell'istanza corrente. (Ereditato da Object)
Metodo pubblicoSupportato da XNA FrameworkGetTypeCode Restituisce il TypeCode per il tipo valore Int32.
Metodo pubblicoMembro staticoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreParse(String)Converte la rappresentazione in forma di stringa di un numero nell'equivalente intero con segno a 32 bit.
Metodo pubblicoMembro staticoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreParse(String, NumberStyles)Converte la rappresentazione in forma di stringa di un numero in uno stile specificato nell'equivalente intero con segno a 32 bit.
Metodo pubblicoMembro staticoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreParse(String, IFormatProvider) Converte la rappresentazione in forma di stringa di un numero in un formato specifico delle impostazioni di cultura nell'equivalente intero con segno a 32 bit.
Metodo pubblicoMembro staticoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreParse(String, NumberStyles, IFormatProvider) Converte la rappresentazione in forma di stringa di un numero in uno stile specificato e in un formato specifico delle impostazioni di cultura nell'equivalente intero con segno a 32 bit.
Metodo pubblicoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreToString() Converte il valore numerico di questa istanza nella sua equivalente rappresentazione in forma di stringa. (Esegue l'override di ValueType.ToString()).
Metodo pubblicoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreToString(IFormatProvider) Converte il valore numerico di questa istanza nella sua equivalente rappresentazione in forma di stringa utilizzando le informazioni di formato specifiche delle impostazioni di cultura.
Metodo pubblicoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreToString(String) Converte il valore numerico di questa istanza nella sua equivalente rappresentazione in forma di stringa usando il formato specificato.
Metodo pubblicoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreToString(String, IFormatProvider) Converte il valore numerico dell'istanza nella sua equivalente rappresentazione in forma di stringa utilizzando il formato specificato e le informazioni di formattazione specifiche delle impostazioni di cultura.
Metodo pubblicoMembro staticoSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreTryParse(String, Int32)Converte la rappresentazione in forma di stringa di un numero nell'equivalente intero con segno a 32 bit. Un valore restituito indica se la conversione è riuscita.
Metodo pubblicoMembro staticoSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreTryParse(String, NumberStyles, IFormatProvider, Int32) Converte la rappresentazione in forma di stringa di un numero in uno stile specificato e in un formato specifico delle impostazioni di cultura nell'equivalente intero con segno a 32 bit. Un valore restituito indica se la conversione è riuscita.
In alto

  NomeDescrizione
Campo pubblicoMembro staticoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreMaxValueRappresenta il valore massimo possibile di Int32. Questo campo è costante.
Campo pubblicoMembro staticoSupportato da XNA FrameworkSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreMinValueRappresenta il valore più piccolo possibile di Int32. Questo campo è costante.
In alto

  NomeDescrizione
Implementazione esplicita dell'interfacciaMetodo privatoSupportato da Libreria di classi portabileSupportato in .NET per applicazioni Windows StoreIComparable.CompareTo Confronta l'istanza corrente con un altro oggetto dello stesso tipo e restituisce un numero intero che indica se l'istanza corrente precede, segue, oppure si trova nella stessa posizione nell'ordinamento rispetto all'altro oggetto.
Implementazione esplicita dell'interfacciaMetodo privatoSupportato da XNA FrameworkIConvertible.ToBooleanInfrastruttura. Per una descrizione di questo membro, vedere il metodo IConvertible.ToBoolean.
Implementazione esplicita dell'interfacciaMetodo privatoSupportato da XNA FrameworkIConvertible.ToByteInfrastruttura. Per una descrizione di questo membro, vedere il metodo IConvertible.ToByte.
Implementazione esplicita dell'interfacciaMetodo privatoSupportato da XNA FrameworkIConvertible.ToCharInfrastruttura. Per una descrizione di questo membro, vedere il metodo IConvertible.ToChar.
Implementazione esplicita dell'interfacciaMetodo privatoSupportato da XNA FrameworkIConvertible.ToDateTimeInfrastruttura. Questa conversione non è supportata. Il tentativo di utilizzare questo metodo genera un'eccezione InvalidCastException.
Implementazione esplicita dell'interfacciaMetodo privatoSupportato da XNA FrameworkIConvertible.ToDecimalInfrastruttura. Per una descrizione di questo membro, vedere il metodo IConvertible.ToDecimal.
Implementazione esplicita dell'interfacciaMetodo privatoSupportato da XNA FrameworkIConvertible.ToDoubleInfrastruttura. Per una descrizione di questo membro, vedere il metodo IConvertible.ToDouble.
Implementazione esplicita dell'interfacciaMetodo privatoSupportato da XNA FrameworkIConvertible.ToInt16Infrastruttura. Per una descrizione di questo membro, vedere il metodo IConvertible.ToInt16.
Implementazione esplicita dell'interfacciaMetodo privatoSupportato da XNA FrameworkIConvertible.ToInt32Infrastruttura. Per una descrizione di questo membro, vedere il metodo IConvertible.ToInt32.
Implementazione esplicita dell'interfacciaMetodo privatoSupportato da XNA FrameworkIConvertible.ToInt64Infrastruttura. Per una descrizione di questo membro, vedere il metodo IConvertible.ToInt64.
Implementazione esplicita dell'interfacciaMetodo privatoSupportato da XNA FrameworkIConvertible.ToSByteInfrastruttura. Per una descrizione di questo membro, vedere il metodo IConvertible.ToSByte.
Implementazione esplicita dell'interfacciaMetodo privatoSupportato da XNA FrameworkIConvertible.ToSingleInfrastruttura. Per una descrizione di questo membro, vedere il metodo IConvertible.ToSingle.
Implementazione esplicita dell'interfacciaMetodo privatoSupportato da XNA FrameworkIConvertible.ToTypeInfrastruttura. Per una descrizione di questo membro, vedere il metodo IConvertible.ToType.
Implementazione esplicita dell'interfacciaMetodo privatoSupportato da XNA FrameworkIConvertible.ToUInt16Infrastruttura. Per una descrizione di questo membro, vedere il metodo IConvertible.ToUInt16.
Implementazione esplicita dell'interfacciaMetodo privatoSupportato da XNA FrameworkIConvertible.ToUInt32Infrastruttura. Per una descrizione di questo membro, vedere il metodo IConvertible.ToUInt32.
Implementazione esplicita dell'interfacciaMetodo privatoSupportato da XNA FrameworkIConvertible.ToUInt64Infrastruttura. Per una descrizione di questo membro, vedere il metodo IConvertible.ToUInt64.
In alto

Int32 è un tipo di valore non modificabile che rappresenta interi con segno con valori compresi tra -2.147.483.648 (rappresentato dalla costante Int32.MinValue) e +2.147.483.647 (rappresentato dalla costante Int32.MaxValue). In .NET Framework è incluso anche un tipo di valore intero a 32 bit senza segno, UInt32, che rappresenta i valori compresi tra -0 e 4.294.967.295.

Creazione di un'istanza di un valore Int32

È possibile creare un'istanza di un valore Int32 in diversi modi:

  • È possibile dichiarare una variabile Int32 e assegnarle un valore letterale intero che rientri nell'intervallo del tipo di dati Int32. Nell'esempio seguente vengono dichiarate due variabili Int32 a cui vengono assegnati valori in questo modo.

    
    int number1 = 64301;
    int number2 = 25548612;
    
    
    
  • È possibile assegnare il valore di un tipo intero il cui intervallo è un sottoinsieme del tipo Int32. Si tratta di una conversione verso il tipo di dati più grande che non richiede un operatore di cast in C# né un metodo di conversione in Visual Basic.

    
    sbyte value1 = 124;
    short value2 = 1618;
    
    int number1 = value1;
    int number2 = value2;
    
    
    
  • È possibile assegnare il valore di un tipo numerico il cui intervallo supera quello del tipo Int32. Si tratta di una conversione verso un tipo di dati più piccolo, pertanto richiede un operatore di cast in C# e un metodo di conversione in Visual Basic se l'opzione OptionStrict è attivata. Se il valore numerico è un valore Single, Double o Decimal che include un componente frazionario, la gestione della parte frazionaria dipende dal compilatore che esegue la conversione. Nell'esempio seguente vengono eseguite le conversioni verso un tipo di dati più piccolo per assegnare diversi valori numerici alle variabili Int32.

    
    long lNumber = 163245617;
    try {
       int number1 = (int) lNumber;
       Console.WriteLine(number1);
    }
    catch (OverflowException) {
       Console.WriteLine("{0} is out of range of an Int32.", lNumber);
    }
    
    double dbl2 = 35901.997;
    try {
       int number2 = (int) dbl2;
       Console.WriteLine(number2);
    }   
    catch (OverflowException) {
       Console.WriteLine("{0} is out of range of an Int32.", dbl2);
    }
    
    BigInteger bigNumber = 132451;
    try {
       int number3 = (int) bigNumber;
       Console.WriteLine(number3);
    }
    catch (OverflowException) {
       Console.WriteLine("{0} is out of range of an Int32.", bigNumber);
    }    
    // The example displays the following output:
    //       163245617
    //       35902
    //       132451
    
    
    
  • È possibile chiamare un metodo della classe Convert per convertire qualsiasi tipo supportato in un valore Int32. Ciò è possibile poiché l'oggetto Int32 supporta l'interfaccia IConvertible. Nell'esempio riportato di seguito viene illustrata la conversione di una matrice di valori Decimal nei valori Int32.

    
    decimal[] values= { Decimal.MinValue, -1034.23m, -12m, 0m, 147m,
                        199.55m, 9214.16m, Decimal.MaxValue };
    int result;
    
    foreach (decimal value in values)
    {
       try {
          result = Convert.ToInt32(value);
          Console.WriteLine("Converted the {0} value '{1}' to the {2} value {3}.",
                            value.GetType().Name, value,
                            result.GetType().Name, result);
       }
       catch (OverflowException) {
          Console.WriteLine("{0} is outside the range of the Int32 type.",
                            value);
       }   
    }                                  
    // The example displays the following output:
    //    -79228162514264337593543950335 is outside the range of the Int32 type.
    //    Converted the Decimal value '-1034.23' to the Int32 value -1034.
    //    Converted the Decimal value '-12' to the Int32 value -12.
    //    Converted the Decimal value '0' to the Int32 value 0.
    //    Converted the Decimal value '147' to the Int32 value 147.
    //    Converted the Decimal value '199.55' to the Int32 value 200.
    //    Converted the Decimal value '9214.16' to the Int32 value 9214.
    //    79228162514264337593543950335 is outside the range of the Int32 type.
    
    
    
  • È possibile chiamare il metodo Parse o TryParse per convertire la rappresentazione in forma di stringa di un valore Int32 in un valore Int32. La stringa può contenere cifre decimali o esadecimali. Nell'esempio seguente viene illustrata l'operazione di analisi utilizzando sia una stringa decimale sia una stringa esadecimale.

    
    string string1 = "244681";
    try {
       int number1 = Int32.Parse(string1);
       Console.WriteLine(number1);
    }
    catch (OverflowException) {
       Console.WriteLine("'{0}' is out of range of a 32-bit integer.", string1);
    }
    catch (FormatException) {
       Console.WriteLine("The format of '{0}' is invalid.", string1);
    }
    
    string string2 = "F9A3C";
    try {
       int number2 = Int32.Parse(string2,
                                System.Globalization.NumberStyles.HexNumber);
       Console.WriteLine(number2);
    }
    catch (OverflowException) {
       Console.WriteLine("'{0}' is out of range of a 32-bit integer.", string2);
    }
    catch (FormatException) {
       Console.WriteLine("The format of '{0}' is invalid.", string2);
    }
    // The example displays the following output:
    //       244681
    //       1022524
    
    
    

Esecuzione di operazioni sui valori Int32

Il tipo Int32 supporta operazioni matematiche standard quali addizione, sottrazione, divisione, moltiplicazione, negazione e negazione unaria. Come gli altri tipi integrali, il tipo Int32 supporta anche gli operatori AND, OR, XOR bit per bit, Left Shift e Right Shift.

È possibile utilizzare gli operatori numerici standard per confrontare due valori Int32 oppure è possibile chiamare il metodo CompareTo o Equals.

È inoltre possibile chiamare i membri della classe Math per eseguire una vasta gamma di operazioni numeriche, tra cui ottenere il valore assoluto di un numero, calcolare il quoziente ed il resto di una divisione tra numeri interi, determinare il valore massimo o minimo tra due numeri interi, ottenere il segno di un numero ed eseguire l'arrotondamento di un numero.

Rappresentazione di un valore Int32 come stringa

Il tipo Int32 fornisce il supporto completo per le stringhe di formato numerico standard e personalizzate. Per ulteriori informazioni, vedere Formattazione dei tipi di dati, Stringhe di formato numerico standard e Stringhe di formato numerico personalizzate.

Per formattare un valore Int32 come stringa di integrali senza zeri iniziali, è possibile chiamare il metodo ToString() senza parametri. Tramite l'identificatore di formato "D", è possibile includere anche un numero specificato di zeri iniziali nella rappresentazione in forma di stringa. Tramite l'identificatore di formato "N", è possibile includere separatori di gruppo e specificare il numero di cifre decimali da visualizzare nella rappresentazione di stringa del numero. Tramite l'identificatore di formato "X", è possibile rappresentare un valore Int32 come stringa esadecimale. Nell'esempio seguente vengono formattati gli elementi di una matrice di valori Int32 in queste quattro modalità.


int[] numbers = { -1403, 0, 169, 1483104 };
foreach (int number in numbers) {
   // Display value using default formatting.
   Console.Write("{0,-8}  -->   ", number.ToString());
   // Display value with 3 digits and leading zeros.
   Console.Write("{0,11:D3}", number);
   // Display value with 1 decimal digit.
   Console.Write("{0,13:N1}", number);
   // Display value as hexadecimal.
   Console.Write("{0,12:X2}", number);
   // Display value with eight hexadecimal digits.
   Console.WriteLine("{0,14:X8}", number);
}   
// The example displays the following output:
//    -1403     -->         -1403     -1,403.0    FFFFFA85      FFFFFA85
//    0         -->           000          0.0          00      00000000
//    169       -->           169        169.0          A9      000000A9
//    1483104   -->       1483104  1,483,104.0      16A160      0016A160


Inoltre è possibile formattare un valore Int32 come stringa binaria, ottale, decimale o esadecimale chiamando il metodo ToString(Int32, Int32) e fornendo la base come secondo parametro del metodo. Nell'esempio seguente viene chiamato questo metodo per visualizzare le rappresentazioni binarie, ottali ed esadecimali di una matrice di valori interi.


int[] numbers = { -146, 11043, 2781913 };
Console.WriteLine("{0,8}   {1,32}   {2,11}   {3,10}", 
                  "Value", "Binary", "Octal", "Hex");
foreach (int number in numbers) {
   Console.WriteLine("{0,8}   {1,32}   {2,11}   {3,10}", 
                     number, Convert.ToString(number, 2), 
                     Convert.ToString(number, 8), 
                     Convert.ToString(number, 16));
}      
// The example displays the following output:
//       Value                             Binary         Octal          Hex
//        -146   11111111111111111111111101101110   37777777556     ffffff6e
//       11043                     10101100100011         25443         2b23
//     2781913             1010100111001011011001      12471331       2a72d9


Utilizzo di valori interi a 32 bit non decimali

Oltre a utilizzare integer singoli come valori decimali, è necessario eseguire operazioni bit per bit con valori integer oppure utilizzare matrici di byte con le rappresentazioni binarie o esadecimali di valori interi. I valori Int32 vengono rappresentati in 31 bit, con il trentaduesimo bit utilizzato come bit di segno. I valori positivi vengono rappresentati con segno e grandezza. I valori negati sono nella rappresentazione in complementi a due. Ciò deve essere ricordato quando si eseguono operazioni bit per bit su valori Int32 o quando si utilizzano bit singoli. Per eseguire un'operazione numerica, booleana o di confronto su due valori non decimali, per entrambi i valori deve essere utilizzata la stessa rappresentazione.

.NET Framework

Supportato in: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supportato in: 4, 3.5 SP1

Libreria di classi portabile

Supportato in: Libreria di classi portabile

.NET per applicazioni Windows Store

Supportato in: Windows 8

.NET per applicazioni Windows Phone

Supportato in: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (ruoli di base del server non supportati), Windows Server 2008 R2 (ruoli di base del server supportati con SP1 o versione successiva, Itanium non supportato)

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.

Tutti i membri di questo tipo sono thread-safe. I membri che sembrano modificare lo stato dell'istanza restituiscono in realtà una nuova istanza inizializzata con il nuovo valore. Come con qualsiasi altro tipo, le operazioni di lettura e scrittura su una variabile condivisa che contiene un'istanza di questo tipo devono essere protette da un blocco per garantire che siano thread-safe.

Aggiunte alla community

AGGIUNGI
Mostra:
© 2014 Microsoft