Function con Option Strict = On

martedì 30 maggio 2006 - 18.23

trinity Profilo | Guru

ho scritto questa funzione che funziona perfettamente:

Function change(ByVal cambio As Decimal, ByVal posdecimale As Integer) Select Case posdecimale Case 2 result = CDec(String.Format("{0:N}", cambio)) Case 3 result = CDec(String.Format("{0:N3}", cambio)) Case 4 result = CDec(String.Format("{0:N4}", cambio)) Case 5 result = CDec(String.Format("{0:N5}", cambio)) End Select Return result End Function

solo che nel progetto ho impostato Option Strict = Off. Mettendolo =On mi esce un errore su questa funzione dicendo che ha bisogno della clausola As. Ho pensato di fare :

Function change(ByVal cambio As Decimal, ByVal posdecimale As Integer) As Object

Sbaglio? questa funziona ha il compito di ritornarmi un dato decimale

Ciao
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/

alextyx Profilo | Expert

Se deve ritornarti un decimale, allora io direi di scrivere 'As Decimal'
Poi, potresti usare change come variabile, dato che viene di default resa disponibile una variabile con lo stesso nome della funzione, ma che distingui per l'assenza delle parentesi ()

Function change(ByVal cambio As Decimal, ByVal posdecimale As Integer) As Decimal
Select Case posdecimale
Case 2
change= CDec(String.Format("{0:N}", cambio))
Case 3
change= CDec(String.Format("{0:N3}", cambio))
Case 4
change= CDec(String.Format("{0:N4}", cambio))
Case 5
change= CDec(String.Format("{0:N5}", cambio))
End Select
Return change
End Function

Cteniza Profilo | Guru

Una sola considerazione.
A mio avviso dovresti mettere option strict on sempre, in questo modo ti assicuri che gli oggetti che produci sono del tutto consoni ai dettami .net.
Questo tra l'altro è uno dei motivi che mi ha fatto scegliere C#.

alextyx Profilo | Expert

Concordo pienamente con Cteniza. Io uso SEMPRE option strict on. Infatti la soluzione non dovrebbe mai essere quella di disattivare option strict, ma piuttosto quella di scrivere il codice come da lui (giustamente) preteso e questa era anche l'intenzione del mio post!

trinity Profilo | Guru

lo so avete ragione ma purtroppo nn mi ero accorto di avere option strict = off
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/

alextyx Profilo | Expert

Eh, eh, eh....non preoccuparti, io ho dovuto rimettere le mani su un intero progetto, purtroppo 'corposotto', per passarlo da VB.Net2003 a VB2005, da Option Strict OFF a Option Strict ON e da ADO ad ADO.Net. Insomma....capita di dover rimaneggiare un po' il codice!
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5