Differenze da Py a C#

Bene !
… Non sapevo che adesso ci fossero le tuple anche in C# … sono rimasto parecchio indietro. :confused:
Buono a sapersi. :slight_smile:

Anche questo e’ un buon modo. :slight_smile:

Bene, ormai conosci diversi metodi.
Non credo che gli esempi in Python ti metteranno piu’ in difficolta’. :slight_smile:

ma io credevo che in quest’occasione me l’avvessi suggerito nell’usarlo :joy: :rofl:

No, parlavo di Python …
:smile:

1 Mi Piace

Emilio non dirmi parolacce:

    go.Get();
    
    if ( go.CommandResult() != rh.Commands.Result.Success ) return go.CommandResult();
    go.Get();

    if ( go.Object(0).Curve() == null ) return rh.Commands.Result.Nothing;

a quanto sembra con quest’ultima sintassi, il problema della sintassi precedente non si presenta. . .

in pratica rh.Commands.Result.Failure viene visto come un oggetto, mentre go.CommandResult() no

:man_facepalming: :man_facepalming:

Cioe’ nel primo caso hai un errore, mentre nel secondo no ?

Sembra strano … il tipo e’ lo stesso.

Il metodo e’ lo stesso, suppongo.
E quale tipo dichiara di restituire ?

esatto

static object Mtd_GetCrvs()
ho messo object come return per le curve
e non mi torna errore se nel return
metto Nothing oppure Failure ecc

facendo delle prove mi è capitata questa combinazione per caso che ha funzionato. . .

return go.CommandResult()
return rh.Commands.Result.Nothing

osservandoli però anche se sono lo stesso tipo non credo si possa dire che siano la stessa cosa

correggimi se sbaglio, nel primo caso viene richiamato un Metodo nel secondo non credo. . .

Visto che si tratta di una enum, suppongo che per restituire un object,C# usi il boxing:

Non conosco le regole della sintassi. Forse restituendo il risultato di un metodo il boxing non viene applicato.
… Non ho idea … :confused:

Si’, sara’ quella la differenza che conta … ma, come dicevo, resto nel campo delle ipotesi …

Potresti provare con un cast a convertire il valore da restituire in object

if ( go.CommandResult() != rh.Commands.Result.Success ) return (object)(go.CommandResult());

Non so se il secondo paio di parentesi aggiunte sia necessario, ma nel dubbio io provo a scriverle … :grinning:

Perche’ per le curve ?
Vuoi dire per poter restituire sia Curve che Result ?

Quindi abbandoni sia le tuple che i parametri out e torni a usare C# come fosse Python.
Se e’ quello che vuoi …

appena ho visto questo funzionamento fin’ora improbabile ho subito postato la notizia
ma appena fatto alcune prove non credo che vada bene, essendo che poi nel primo
Metodo che chiama il secondo Metodo, poi si ritrova con un oggetto Curva o Result
e mi ritrovo con lo stesso problema nel primo Metodo quello che chiama
essendo che se è un Oggetto non mi compara con il Result

provo il cast come mi hai chiesto e ti faccio sapere.

Il cast serve se vuoi resituire un object.
Se cambi idea e pensi di restituire qualcos’altro, lascia perdere il cast.

(cancellato la risposta di prima)

vabbè come non detto, ritorno all’ out object come parametro :+1: