So che sono lo stesso tipo di variabile, ma esiste uno "stile" standard accettato per l'utilizzo di long
o Int64
?Stile accettato per lungo vs Int64 in C#?
Vorrei utilizzare il più comune.
So che sono lo stesso tipo di variabile, ma esiste uno "stile" standard accettato per l'utilizzo di long
o Int64
?Stile accettato per lungo vs Int64 in C#?
Vorrei utilizzare il più comune.
Tutta la documentazione di Microsoft e 99,999% (più o meno) del codice che troverete volontà in linea utilizzare long
. Si veda ad esempio la definizione tipo di dati numerico in C# riferimento: http://msdn.microsoft.com/en-us/library/exx3b86w.aspx
Alla fine, questo è lo stesso problema con l'utilizzo string
o String
. In generale, i nomi minuscoli vengono utilizzati per tipi di dati valore come numeri o caratteri, mentre i nomi maiuscoli vengono utilizzati per le classi. In C# Int64
è il tipo di dati complesso (una struttura con campi, proprietà e metodi, vedere il documento here) per il tipo di dati valore long
(consultare il documento here). In generale, le persone non utilizzano la classe Int64
per altri che richiamano metodi da quella classe, ad esempio Int64.Parse
. Così è di solito trovare qualcosa di simile:
long variable = 9.5f;
string text = "8.4";
long anotherVariable = Int64.Parse(text);
Puoi ugualmente scrivere 'long anotherVariable = long.Parse (text);' – dtb
@dtb Lo so, lo so. Sto solo dicendo che cosa è più comune là fuori –
Otterrete così tante opinioni diverse per una domanda come questa poiché sono la stessa identica cosa. Quindi tocca a te. Microsoft praticamente usa sempre long
, int
e short
nella loro documentazione ed esempi. È semplicemente un alias in VB.NET e C#. Quindi credo che sia meglio usarli per usarli in questo modo.
long
invece di Int64
int
invece di Int32
short
invece di Int16
Credo che si tratta di chiarezza rispetto compatibilità. Int16
, Int32
e Int64
sono più chiari di short
, int
e long
. Sai solo guardando allo Int16
che è lungo 16 bit.
Qualcuno che non sa a lungo è 64 bit ha problemi molto più grandi durante la lettura del codice rispetto a questo. – Filip
Sono d'accordo con @Filip, se qualcuno non sa che breve è 16 bit, int è 32 bit, e lungo è 64 bit è incompetente o non è stato programmato in 20 anni. –
@TheGreatCO: Questo non ha nulla a che fare con l'essere incompetenti o non avere programmi in un istante. C# non esiste da 20 anni e C/C++ ha definizioni molto diverse per questi tipi di dati. Quel che Filip allude è che l'equivalenza tra 'long' e' Int64' * in C# * sono principi di base * in C# *, quindi ci si può aspettare che questo sia un fatto noto - o il programmatore è in una fase molto iniziale di imparare C#. – dtb
Penso che nella maggior parte dei casi si tratterà di preferenze personali, ma se si sta parlando rigorosamente di "C#" senza specificare la piattaforma sottostante, ci penserei un po 'diversamente. Se si sta sviluppando per aderire agli standard C# per la portabilità attraverso le piattaforme e "a prova di futuro", "long" sarebbe il modo migliore di procedere poiché è un vero costrutto nella lingua stessa. "Int64" è una struttura reale (System.Int64) nel framework.
C# utilizza queste parole chiave come long, int string, come alias per i tipi .NET.
int
= System.Int32
long
= System.Int64
string
= System.String
Il primo argomento ad utilizzare queste parole chiave è che si tratta con la lingua, in modo da utilizzare durante la scrittura della lingua.
Un secondo argomento dell'utilizzo di queste parole chiave è che non è necessario inserire using System;
sopra il file di codice.
Un altro vantaggio potrebbe essere che qualcuno potrebbe creare un nuovo tipo chiamato Int64
e metterlo da qualche parte nel tuo spazio dei nomi (lo so ... sarebbe pazzesco). Se il tuo codice precedente utilizza il tipo Int64
, il tuo vecchio codice potrebbe smettere di funzionare. Se il tuo vecchio codice utilizzava long
(un alias per System.Int64
), funzionerebbe ancora bene.
È necessario utilizzare long
, int
e short
.
L'unica eccezione che conosco è in un nome di funzione; guarda a BitConverter.ToInt64.
Il motivo è quello che non è definito in CIL mentre int64 lo è.
Per quanto riguarda i tipi di framework .NET e i metodi di denominazione, consultare il paragrafo finale di [questa risposta] (http://stackoverflow.com/a/215422/1497596) alla domanda [Qual è la differenza tra stringa e stringa?] (http://stackoverflow.com/q/7074/1497596). – DavidRR
Sicuramente lungo –
check this out http://forums.asp.net/t/1278143.aspx/1 "Int64 = lungo Int32 = int Int16 = breve" – SchautDollar
Come sempre, questo è un questione di preferenza. L'importante è essere coerenti in ciò che usi. Detto questo, credo che la maggior parte degli sviluppatori preferisca 'long' su' Int64'. – dtb