Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare
Mova Z70 Ultra Complete è un robot aspirapolvere che coniuga un'aspirazione potente e un lavaggio con rullo a logica di intelligenza artificiale che guida al meglio nella pulizia di casa: rulli e spazzole estensibili a pulire gli angoli e una base di ricarica che lava e ripristina il robot al emglio delle sue funzionalità dopo ogni azione di pulizia
Recensione Google Pixel 11: non ha l'HiLight dei Pro, ma è il Pixel più equilibrato di sempre
Recensione Google Pixel 11: non ha l'HiLight dei Pro, ma è il Pixel più equilibrato di sempre
Abbiamo provato Google Pixel 11, il più accessibile della nuova gamma: chip Tensor G6 condiviso con i modelli Pro, fotocamera 48 MP con Magic Capture e Stili Fotografici, display Actua da 3000 nit e batteria da 4985 mAh. Ecco come si comporta nell'uso quotidiano, e cosa cambia davvero rispetto a Pixel 11 Pro e Pro XL
Google Pixel 11 Pro XL: fotocamera al top, batteria indietro. Luci e ombre del nuovo flagship
Google Pixel 11 Pro XL: fotocamera al top, batteria indietro. Luci e ombre del nuovo flagship
Google Pixel 11 Pro XL debutta in Italia con il nuovo Tensor G6, lo Zoom Pro fino a 120x, il display Super Actua da 3600 nit e la new entry HiLight riservata ai modelli Pro: lo abbiamo provato in anteprima per diversi giorni prima del lancio commerciale, tra fotocamera generativa, ricarica ancora indietro rispetto ai rivali e un prezzo che parte da 1399 euro
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 30-01-2003, 14:19   #1
Kleidemos
Bannato
 
L'Avatar di Kleidemos
 
Iscritto dal: Nov 2002
Città: PV
Messaggi: 1210
[C#]Interfacce

A che servono le interfaccie?
Da quel che ho capito dovrebbero essere classi astratte.
Ma a cosa servono????????'

Chi mi posta un esempio



Ciao&Tnk
Kleidemos è offline   Rispondi citando il messaggio o parte di esso
Old 30-01-2003, 17:31   #2
Kleidemos
Bannato
 
L'Avatar di Kleidemos
 
Iscritto dal: Nov 2002
Città: PV
Messaggi: 1210
ap
Kleidemos è offline   Rispondi citando il messaggio o parte di esso
Old 31-01-2003, 12:22   #3
Kleidemos
Bannato
 
L'Avatar di Kleidemos
 
Iscritto dal: Nov 2002
Città: PV
Messaggi: 1210
Re: [C#]Interfacce

ap
Kleidemos è offline   Rispondi citando il messaggio o parte di esso
Old 31-01-2003, 19:06   #4
atragon
Senior Member
 
L'Avatar di atragon
 
Iscritto dal: Sep 2000
Messaggi: 886
Le interfacce sono molto simili a classi astratte con tutti i membri astratti. Sono utili nello sviluppo di classi che possono condividere le caratteristiche pur non facendo parte della medesima gerarchia. In C# non esiste l'ereditarietà multipla ma è possibile ereditare da più interfacce.
__________________

1986/2008 - 22 anni di rabbia cancellati in un giorno. Adesso passeranno altri 22 anni.. Learn Falcon language sul sito ufficiale e sul mio
RIP NBA3D
atragon è offline   Rispondi citando il messaggio o parte di esso
Old 31-01-2003, 19:10   #5
Kleidemos
Bannato
 
L'Avatar di Kleidemos
 
Iscritto dal: Nov 2002
Città: PV
Messaggi: 1210
mi fai un esempio di cod pratico???
Kleidemos è offline   Rispondi citando il messaggio o parte di esso
Old 31-01-2003, 19:20   #6
atragon
Senior Member
 
L'Avatar di atragon
 
Iscritto dal: Sep 2000
Messaggi: 886
E va bene....continuo a ritenere che leggere del gran codice senza prima studiarsi le basi sia un pessimo metodo...cmq, magari tu ti trovi meglio così...
Codice:
using System;
interface somma // questa è l'interfaccia
{
int conta(int dati);
}
public class calcola: somma // definisco la classe a partire dall'interfaccia
{
public int conta(int dati)
{
int x = 10 + dati;  // implemento il metodo
return x;
}
}
class test
{
public static void Main()
{
calcola som = new calcola();
int y = som.conta(3);
Console.WriteLine("Somma: " + y.ToString());
}
}
Non è un gran che come esempio, provalo perchè non l'ho compilato, non sono sul mio pc e qui non ho il framewok installato. Se qualcuno ha sotto mano di meglio....
__________________

1986/2008 - 22 anni di rabbia cancellati in un giorno. Adesso passeranno altri 22 anni.. Learn Falcon language sul sito ufficiale e sul mio
RIP NBA3D
atragon è offline   Rispondi citando il messaggio o parte di esso
Old 31-01-2003, 19:39   #7
Kleidemos
Bannato
 
L'Avatar di Kleidemos
 
Iscritto dal: Nov 2002
Città: PV
Messaggi: 1210
cioe io ho per esempio

interface Animale
{
void Muovi();
}

class Cane:Animale {
void Muovi(){
Console.WriteLine("Me sto a movere");
}
public static void Main() {
Cane inter = new Cane();
Cane.Muovi();
}
}



è esatto?
Kleidemos è offline   Rispondi citando il messaggio o parte di esso
Old 31-01-2003, 20:25   #8
atragon
Senior Member
 
L'Avatar di atragon
 
Iscritto dal: Sep 2000
Messaggi: 886
Così a occhio mi sembra proprio di no...
Cane.Muovi() ???? sarà inter.Muovi()
e nell'implementazione devi mettere un public davanti al metodo.
__________________

1986/2008 - 22 anni di rabbia cancellati in un giorno. Adesso passeranno altri 22 anni.. Learn Falcon language sul sito ufficiale e sul mio
RIP NBA3D
atragon è offline   Rispondi citando il messaggio o parte di esso
Old 31-01-2003, 20:26   #9
Kleidemos
Bannato
 
L'Avatar di Kleidemos
 
Iscritto dal: Nov 2002
Città: PV
Messaggi: 1210
cosi?

Codice:
interface Animale 
{ 
void Muovi(); 
} 

public class Cane:Animale { 
void Muovi(){ 
Console.WriteLine("Me sto a movere"); 
} 
public static void Main() { 
Cane inter = new Cane(); 
inter.Muovi(); 
} 
}
Kleidemos è offline   Rispondi citando il messaggio o parte di esso
Old 31-01-2003, 20:30   #10
atragon
Senior Member
 
L'Avatar di atragon
 
Iscritto dal: Sep 2000
Messaggi: 886
No... così:
Codice:
using System;
interface Animale 
{ 
void Muovi(); 
} 

class Cane: Animale { 
public void Muovi(){ 
Console.WriteLine("Me sto a movere"); 
} 
public static void Main() { 
Cane inter = new Cane(); 
inter.Muovi(); 
} 
}
__________________

1986/2008 - 22 anni di rabbia cancellati in un giorno. Adesso passeranno altri 22 anni.. Learn Falcon language sul sito ufficiale e sul mio
RIP NBA3D
atragon è offline   Rispondi citando il messaggio o parte di esso
Old 01-02-2003, 05:55   #11
Kleidemos
Bannato
 
L'Avatar di Kleidemos
 
Iscritto dal: Nov 2002
Città: PV
Messaggi: 1210
Quote:
Originally posted by "atragon"

E va bene....continuo a ritenere che leggere del gran codice senza prima studiarsi le basi sia un pessimo metodo...cmq, magari tu ti trovi meglio così...
è che la skuola mi impedisce di leggere il libro ma io nn voglio perdere la mano
Kleidemos è offline   Rispondi citando il messaggio o parte di esso
Old 01-02-2003, 09:56   #12
soalle
Senior Member
 
L'Avatar di soalle
 
Iscritto dal: Oct 2000
Città: Montreal (Canada)
Messaggi: 1309
Comunque un'interfaccia generalmente serve quando vuoi che un tuo oggetto usi degli oggetti (indipendentemente da come essi siano fatti) che abbiano certe funzionalità...
Esempio:
oggetto A ha un metodo che serve per comprimere un suo documento -> ha bisogno di qualcuno che abbia i metodi comprimi e decomprimi -> crea un'interfaccia e dice che per comprimere ha bisogno di un oggetto con tale interfaccia -> a quel punto puoi realizzare tanti oggetti che implementano l'interfaccia (magari uno comprime in zip, uno in gz, uno in arj,....) -> l'oggetto A usa poi l'oggetto che gli interessa sicuro del fatto che implementa le funzionalità comprimi e decomprimi...

Spero di essere stato sufficientemente chiaro, senza crearti dei casini in testa...
soalle è offline   Rispondi citando il messaggio o parte di esso
Old 01-02-2003, 11:21   #13
Kleidemos
Bannato
 
L'Avatar di Kleidemos
 
Iscritto dal: Nov 2002
Città: PV
Messaggi: 1210
+ o -
Cioe io crea l'interfaccia compres con comprimi() e decompromi().
Poi creo la classe Zip e quella Rar in cui implemento in ogniuno comprimi() e decompromi() ............. è esatto?
Kleidemos è offline   Rispondi citando il messaggio o parte di esso
Old 01-02-2003, 11:25   #14
soalle
Senior Member
 
L'Avatar di soalle
 
Iscritto dal: Oct 2000
Città: Montreal (Canada)
Messaggi: 1309
classe zip e rar che implementano tale interfaccia:

Codice:
public class Zip: ICompressione{
...
}
Poi esiste un altro componente a cui serve "qualcuno che sappia comprimere e decomprimere" -> quindi quest'altro componente userà Zip
soalle è offline   Rispondi citando il messaggio o parte di esso
Old 01-02-2003, 11:28   #15
Kleidemos
Bannato
 
L'Avatar di Kleidemos
 
Iscritto dal: Nov 2002
Città: PV
Messaggi: 1210
tipo cosi??????
Codice:
using System; 

interface ICompressione { 
	string comprimi(string path); 
	string decomprimi(string path); 
} 

public class Zip:ICompressione { 
	public string comprimi(string path) { 
		Console.WriteLine("Sto Comprimendo {}!\n", path); 
	} 
	public string decomprimi(string path) { 
		Console.WriteLine("Sto Decomprimendo {}!\n", path); 
	} 
} 

public class Rar:ICompressione { 
	public string comprimi(string path) { 
		Console.WriteLine("Sto Comprimendo {}!\n", path);
	} 
	public string decomprimi(string path) { 
		Console.WriteLine("Sto Decomprimendo {}!\n", path);
	} 
}
Kleidemos è offline   Rispondi citando il messaggio o parte di esso
Old 01-02-2003, 12:58   #16
soalle
Senior Member
 
L'Avatar di soalle
 
Iscritto dal: Oct 2000
Città: Montreal (Canada)
Messaggi: 1309
Esatto...

Metafora:
E' come se un negozio abbia bisogno di un commesso (classe). Il commesso deve avere dei requisiti (implementa un'interfaccia) e i requisiti (interfaccia) sono: sapere l'inglese, sapere usare il computer, ... (metodi all'interno dell'interfaccia). Alla fine il negozio non cerca un dato commesso (classe) ma semplicemente "un" commesso che abbia i requisiti (cerca qualcuno che implementi l'interfaccia...)
soalle è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
Recensione Google Pixel 11: non ha l'HiLight dei Pro, ma è il Pixel più equilibrato di sempre Recensione Google Pixel 11: non ha l'HiLight dei...
Google Pixel 11 Pro XL: fotocamera al top, batteria indietro. Luci e ombre del nuovo flagship Google Pixel 11 Pro XL: fotocamera al top, batte...
Non sai programmare? Ecco cosa si può fare con un LLM e una GeForce RTX 5070 Ti Non sai programmare? Ecco cosa si può far...
Recensione Samsung Galaxy Z Fold8 Ultra: il pieghevole più famoso diventa quasi perfetto Recensione Samsung Galaxy Z Fold8 Ultra: il pieg...
Anthropic e Salesforce annunciano l'inte...
Ricoh GR IVx: annunciata la compatta da ...
I consumatori non sarebbero interessati ...
Cybersecurity: come si sono mossi gli AP...
I giochi digitali non sono di proprietà ...
Photoshop ha una seconda interfaccia: se...
Samsung Galaxy S27 si mostra nei primi r...
Celle solari tandem perovskite-silicio a...
Pneumatici Continental con il 43% di mat...
Meta: la Polonia chiede alla Commissione...
LEGO Skylines arriva da Paradox e Icefla...
1100 Hz su un monitor: Samsung supera un...
Plaud One è il nuovo wearable AI ...
ESA vuole espandere le capacità d...
Le auto di Xiaomi arrivano da noi nel 20...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 03:44.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v