Premessa:
Sto cercando di scrivere un programma in C# che recupera dati da un foglio calc, li elabora e infine restituisce i valori.
Questo apprroccio è dovuto al fatto di:
1. non dover gestire una interfaccia grafica usando il folgio di calc
2. aver la necessità di elaborare velocemente i dati letti dal foglio. Basic si è dimostrato eccessivmaente lento.
Domanda
Sto quindi cercando di capire come funzionano le API. Ho letto varie articoli ma un dubbio base mi rimane.
E' corretto fare questo parallelismo:
servizio --> una classe di C# (astratta)
interfaccia --> una interfaccia di C#
quindi se un certo servizio implementa una certa interfaccia che richiede che quel servizo abbia determianti metodi allora è possibile creare un oggetto del "tipo" di quel servizio e richiamare poi sull'oggetto i metodi definiti dall'interfaccia.
Usando C# quando definisco una variabile devo specificare sempre il tipo.
Qui nasce il dubbio.
Noto che il tipo è in genere definito non come il servizio ma come l'interfaccia.
Cioè il servizio "Cell" è definito come
Xcell oCell
dove Xcell è una interfaccia implementata dal servizio Cell.
E' questo il modo corretto di procedere? Usare l'interfaccia come "tipo"?
Nasce quindi il problema che quando una interfaccia è implementata da diversi servizi definendo una variabile in questo modo come è possibile che il compilatore capisca quale è il servizio corretto? Nasce poi l'obbligo del cast.
Mi chiarite un po' le idee...
grazie
MArco