un saluto a tutti,
(ovviamente più si va avanti e più nascono domande)
import Rhino as rh
def Def1():
go = rh.Input.Custom.GetObject()
go.GeometryFilter = rh.DocObjects.ObjectType.Point
go.Get()
Def1()
using rh = Rhino;
Main();
void Main()
{
var pt = new rh.Input.Custom.GetObject { GeometryFilter = rh.DocObjects.ObjectType.Point };
pt.Get();
}
avevo provato ad utilizzare anche in Python la stessa sintassi usata per C#
passando la seconda riga insieme alla prima all’interno delle parentesi graffe
(ma come sembra non dipende da RCommon ma è una peculiarità di C# ?)
questa sintassi di C# mi ha fatto riflettere su una cosa:
si è parlato che in RCommon quando ci sono le parentesi
tonde significa che si ha a che fare con dei Metodi giusto?
ma rh.Input.Custom.GetObject() che è una Classe,
in questo caso viene richiamata come Costruttore?
ps come ultima cosa:
in C# la tipizzazione del tipo var per la variabile pt
va a sostituire tutte le altre tipi di tipizzazioni,
così non occupa maggior memoria?
Ciao Salvio,
Come tu stesso hai scritto, un nome che termina con parentesi tonde è un metodo di una classe il quale può contenere qualsiasi cosa, ivi compreso del codice per costruire oggetti.
RC implementate in. Net seguono necessariamente la sintassi C#. Diversamente avremmo dovuto utilizzare linguaggi meno userfriendly.
l’utilizzo della parola chiave var in C# non richiede più memoria rispetto alla dichiarazione esplicita del tipo. Durante la compilazione, il compilatore determina il tipo esatto della variabile e genera lo stesso codice Intermediate Language (IL) che avrebbe generato se il tipo fosse stato dichiarato esplicitamente
Quindi, non c’è differenza in termini di utilizzo della memoria tra i due modi di dichiarare una variabile.
var numero = 5; // Compilato come int numero = 5;
int numeroEsplicito = 5; // Nessuna differenza in memoria rispetto a ‘var’
using System;
class Program
{
public static void Main(string[] args)
{
string a = "abc";
Console.WriteLine( a );
var b = "def";
Console.WriteLine( b );
}
}
ma alla fine se anche con la tipizzazione generica di var ad inizio variabile funziona allo stesso modo
a questo punto credo che Python utilizza questo sistema delle variabili tipizzate con var
in effetti avendo questa possibilità a disposizione, (tranne che per una conoscenza personale)
diventa superfluo andare a specificare tante cose, di cui poi se ne può fare a meno. . .