PDA

View Full Version : [VB.NET] - Funzione con parametro di tipo diverso


ryan79
22-10-2012, 15:42
Ciao a tutti!
Come si dichiara una funzione che riceve un parametro che può essere sia un double sia una matrice double(,) ? Mi spiego meglio. Ho creato una funzione con vb.net (2012 express) che servirebbe per moltiplicare 2 matrici. Fin qui tutto bene. Funziona. Adesso, però, vorrei utilizzare la stessa funzione per moltiplicare uno scalare per una matrice. Ovviamente, se passo alla funzione che ho creato lo scalare, mi da errore perchè non è una matrice. Da qui la domanda se esiste una sorta di metodo per dare a una funzione più prototipi (si dice così?). Un po' come la funzione di vb.net strings.mid(). Appena si digita compare il suggerimento che indica due modi per passare le variabili alla funzione. Al momento la funzione la dichiaro in questo modo:

Function MatMult(ByVal PrimaMatrice As Double(,), ByVal SecondaMatrice As Double(,)) As Double(,)

idoido
22-10-2012, 16:43
la devi chiamare nello stesso modo (MatMult)
nel tuo caso sarebbe

Function MatMult(ByVal Scalare As Double, ByVal Matrice As Double(,)) As Double(,)

e ovviamente implementare il codice

ryan79
22-10-2012, 16:57
Grazie! Non ci sarei mai arrivato! Erano un po' di giorni che ci giravo attorno, ma non mi sarei mai immaginato che la soluzione fosse questa. Pensavo che si dovesse utilizzare qualche espressione particolare, ormai avevo quasi perso le speranze.
Grazie ancora!

[Kendall]
22-10-2012, 17:47
Grazie! Non ci sarei mai arrivato! Erano un po' di giorni che ci giravo attorno, ma non mi sarei mai immaginato che la soluzione fosse questa. Pensavo che si dovesse utilizzare qualche espressione particolare, ormai avevo quasi perso le speranze.
Grazie ancora!

Si tratta della tecnica chiamata "overload dei metodi". Per una spiegazione dettagliata qui trovi una pagina molto utile e con diversi esempi: Overload! (http://msdn.microsoft.com/en-us/library/ms973896.aspx)

ryan79
23-10-2012, 13:17
Grazie anche a te per il suggerimento Kendall.