Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Option strict ON [VB]
Forum - C# / VB.NET - Option strict ON [VB]

Avatar
Question (Normal User)
Rookie


Messaggi: 58
Iscritto: 14/12/2010

Segnala al moderatore
Postato alle 18:57
Lunedì, 21/02/2011
Salve ragazzi,
ho scoperto da poco questa opzione nel compilatore di visual studio,mi sono documentato e volevo chiedervi:
apparte il fatto che ti permette di avere "idee più chiare sul codice",ci sono altri vantaggi?

Inoltre, in VB i numeri vengono considerati direttamente Integer a 32 bit,quindi ha effettivamente senso usare Int16 o byte per operazioni basilari come:
Codice sorgente - presumibilmente C# / VB.NET

  1. Dim X as Byte
  2. 'something [..]
  3. X += CByte(1)


Ciò che guadagno in memoria usando un tipo Byte non mi fà poi perdere velocità a causa delle conversioni?

Grazie anticipatamente :k:

Ultima modifica effettuata da Question il 21/02/2011 alle 18:58
PM
Avatar
Ale96 (Member)
Pro


Messaggi: 132
Iscritto: 06/04/2010

Up
1
Down
V
Segnala al moderatore
Postato alle 21:13
Lunedì, 21/02/2011
Quando immetti un numero viene automaticamente considerato di tipo integer tranne che quando è troppo grande, in quel caso è di tipo long o quando ha una virgola indicata con un punto: 2.5 in quel caso è di tipo double.
Ho provato con il mio computer cronometrando per vedere se fossero più veloci gli integer o byte, com'ero sicuro già dall'inizio non ci sono differenze.

Le differenze certo non le puoi vedere con uno stopwatch o simili,io sono sicuro del fatto che un Byte occupi meno memoria di un Int32 o di un Double etc... Ma se poi devo scrivere CByte ogni volta,non conviene direttamente usare gli integer\double etc...? - Question - 21/02/11 23:44
PM
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Up
1
Down
V
Segnala al moderatore
Postato alle 12:04
Martedì, 22/02/2011
Non esiste un suffisso per indicare una costante letterale di tipo byte. Esistono ad esempio per indicare i long (L), i float (F), i decimal (D) e altri.
Ma se il compilatore è "intelligente" come ci si aspetterebbe, potrebbe attuare delle ottimizzazioni in fase di compilazione e rimuovere l'operatore di conversione applicato alla costante.

Grazie della risposta,non ero nemmeno al corrente di suffissi differenti da c ^^ Per ulteriori info: http://msdn.microsoft.com/en-us/library/s9cz43ek.aspx - Question - 22/02/11 17:30
PM