Scusa, ma io preferisco fare tutto il ragionamento piuttosto che dirti subito cosa fare, con il sospetto che poi non capisci cosa stiamo facendo …
Dopo vediamo anche un esempio diverso.
Partiamo dal messaggio di errore (come si fa di solito
)
Dice che hai richiamato il metodo DivideCurveBySegments senza passargli il parametro doc.
E in effetti e’ quello che si vede nello script.
Tu scrivi:
main.DivideCurveBySegments();
Cioe’ richiami il metodo
public static Result DivideCurveBySegments(RhinoDoc doc)
… Che, come vedi, richiede un parametro (che chiama doc), di tipo RhinoDoc.
Quindi, se tu richiami il metodo senza passargli il parametro, viene fuori un errore, e’ inevitabile.
Per cui, per richiamare quel metodo, dovrai utilizzare anche un valore di tipo RhinoDoc,
che in questo caso abbiamo visto che possiamo ricavare dalla proprieta’ RhinoDoc.ActiveDoc.
Per cui … quando richiami il metodo DivideCurveBySegments, scrivi tra le parentesi il parametro di tipo RhinoDoc, cioe’ RhinoDoc.ActiveDoc.
Oppure ovviamente salvi il valore di tipo RhinoDoc in una variabile e scrivi quella richiamando il metodo.
Esempio con una funzione forse piu’ semplice (sperando di non sbagliare la sintassi
)
Se abbiamo una funzione
class Potenze
{
public static double Quadrato( double num )
{
return num * num;
}
}
Per richiamarla potremmo scrivere ad esempio
var test = new Potenze();
var risultato = test.Quadrato( 2.5 );
Cioe’ scrivi tra le parentesi un vaore di tipo double, come richiesto dal metodo.
( E non vai a modificare il metodo scrivendo ad esempio
public static Quadrato( 2.5 num )
Perche’ non ha senso sostituite il tipo di dati del parametro con un valore. )
Ho l’impressione che tu non sia ancora abituato al fatto che in C#, contrariamente a Python, i tipi di dati vanno scritti, e rispettati quando richiami ad esempio il metodo.
E non vanno assolutamente confusi con i dati, o valori che dir si voglia.
Se definendo un metodo, dichiari un parametro
double num
double e’ il tipo di dato e num e’ il nome del parametro.
E quando richiami quel metodo, al posto di
double num
scriverai semplicemente un valore di tipo double, come 2.5 o 123.456 o anche una variabile o una espressione, che pero’ sia del giusto tipo.
Quindi quando in uno script vedi un metodo con un parametro di tipo RhinoDoc, richiamando il metodo dovrai passare al metodo un valore di tipo RhinoDoc.
Stesso discorso ovviamente per ogni altro tipo di dati, con possibili ‘complicazioni’ in caso di classi derivate …