Newsgroup: it.comp.lang.visual-basic
Titolo: Ritornare Null invece che nothing

Ho la necessita di ritornare non nothing ma vuoto!
Fw 3.5
 
come fare?....ovviamente farlo generico!
 
pseudo codice a memoria
 
Function ReturnNull(coso as Object)
   if coso is nothing then
      return new coso
   else
      return coso
   end if
end function
 
....sperando che ne new non setti nulla di default?
 
O E' MEGLIO FARE....
 
if coso is nothing
  dim ret as  new Nullable(of coso)=nothing
  return ret
 
 
????
 
L'idea è che se gli passo una routine che istanzia una datatable o una 
collezione di classi custom ....e ritorna nothing perchè ad esempio non 
c'è dati in risposta della query...
intercetti questa funzione nel return e mi crei una classe custom o una 
datatable vuota...così a valle non esplode nulla (invece di stare a 
testare 500 volte is nothing!)
 
-- 
----- Italliaaaaa 3227! -----
Grembiule nero e fiocco azzurro: per un bambino milanista il primo 
giorno di scuola è un trauma.
(Diego Abatantuono)
 
 

   return ret
zac
caz....Nullable vuole una struttura...grrrr
 
alla fine ho scritto nella realtà...
 
            If _ListaLink Is Nothing Then
                Dim t As New Dictionary(Of String, String)
                Return t
            Else
                Return _ListaLink
            End If
 
-- 
----- Italliaaaaa 3227! -----
Era Cecco, il figlio del fornaio; era un orribile butterato napoletano, 
col culo molto basso ed un alito agghiacciante tipo fogna di Calcutta.
(Fantozzi)
 
 

caz....Nullable vuole una struttura...grrrr
...
Piu' che una struttura, vuole un tipo valore.
D'altronde, il Nullable (of T) serve proprio ad "aggiungere" la gestione di 
un valore nullo (quindi Nothing) a qualcosa che nativamente non lo ha. 
 

vbMizio ha usato la sua tastiera per scrivere :

tipo valore
Che è una struttura tipicamente
 
Nullable(of Dictionary(of string,string)) infatti mi riporta proprio 
l'errore che vuole un tipo valore!
e come l'annullo un dictionary of qualcosa, ossia
come  lo istanzio ma vuoto ?
con new dictionary of qualcosa....
 
corretto no?
 
-- 
----- Italliaaaaa 3227! -----
Mi disturba la morte, è vero. Credo che sia un errore del padreterno. 
Non mi ritengo per niente indispensabile,
ma immaginare il mondo senza di me: che farete da soli?
(Vittorio Alfieri)
 
 

e come l'annullo un dictionary of qualcosa, ossia
come  lo istanzio ma vuoto ?
con new dictionary of qualcosa....
....
A prima vista direi di si, ma mi sembra talmente banale che, dato che la 
domanda viene da te, mi vien da pensare che ci sia sotto qualche inghippo, 
che pero' non riesco a vedere.
 

Ha detto: vbMizio
Il giorno: giovedì, 26/04/2012

No è che con l'età divento pigro
e vorrei i programmi autoscriventi....
 
c'ho alcune classi che per "forza di cliente" hanno
un
class utonto
sub new
  _nome="pippo"
etc etc
 
quando vado a fare una operazione di caricamento....se fallisce
 
utonto=nothing
if utonto is nothing bla bla
 
in 
asp.net
 se mi scordo un is nothing la pagina si pianta( e dll su dll 
modulo su modulo è facile....)!
riportasse un valore nullo...l'oggetto sarebbe creato...eventuali 
proprietà mostrate non mostrerebbero nulla...la pagina continuerebbe a 
funzionare.
Per farlo dovrei
o testare isnothing come detto e impostare la visualizzazione a nulla
o costruire un metodo classe.nullo per azzerare tutte le proprietà 
impostate di default.
Utonto.nullo
return Utonto
 
 
che palle....l'avessi potuto annullare con un nullable e stop...ma 
siccome ci sono anche tipi riferimento....
ùnsepò!!!
 
-- 
----- Italliaaaaa 3227! -----
Pasquà...Pasquale Zagaria...u'fighh'Riccard
[Vieni avanti cretino (1982)
c'ho pure il video! 
http://www.martek.it/public/dblog/banfi1.swf
 ]
 
 

 
 
Dictionary è una classe, reference value, tu hai bisogno, come hai ben 
detto, di un tipo value. Strutture e tipi di dato di base tipicamente.
I vari Struct { } e int, long etc etc :)
 
 
 

 ha scritto:

Ovviamente i reference value per avere null devi assegnargli il classico 
Nothing :)