Domanda teoria

martedì 21 luglio 2009 - 10.04

chira Profilo | Newbie

buongiorno, chi mi sa spiegare in parole semplici cos'è il delegato in dotnet? e magari se ne avesse voglia la differenza tra programmazione ad oggetti e procedurale xchè ho letto mille libri ma continuo a nn capirne la differenza.. :(

luxsor Profilo | Guru

Ciao Giovanna,

la programmazione ad oggetti (OOP, Object Oriented Programming) a differenza della "vecchia" programmazione permette di raggruppare in un'unica entità detta (CLASSE) sia le strutture dati che le procedure che operano su di esse, creando così un (OGGETTO). Quindi nella programmazione ad oggetti una classe è dotata di PROPRIETA', METODI e tutti i rispettivi EVENTI che la classe genera.

Spero di esseti stato d'aiuto.



------------------------
Luxsor

chira Profilo | Newbie

ma scusa non è esattamente quello che succede nella form di visual basic???
all'interno della form hai i tuoi metodi e le tue variabili.. quindi xchè questa invece è procedurale?
non riesco proprio a capirlo

luxsor Profilo | Guru

>ma scusa non è esattamente quello che succede nella form di visual
>basic???
Perfetto.
Adesso la maggior parte dei linguaggi di programmazione VB, C# ecc. sono entrambi.

Esempio in VB;

- Questa è una PROCEDURA

Sub NomeProcedura(Lista parametri)
Dichiarazioni e Istruzioni
End Sub

- Questa è una funzione:
Function NomeFunzione(Lista parametri) As TipoDiRitorno
Dichiarazioni e Istruzioni
Return Espressione
End Function

Dai un occhiata qua:
http://php.html.it/articoli/leggi/3090/codice-procedurale-vs-oop/


------------------------
Luxsor

chira Profilo | Newbie

però nn vedo la differenza..
puoi usare la sub o la function ma ai fini pratici nn cambia nulla..
mi sa che mi manca qualcosa x riuscire a capire :(
io continuo a nn vedere ne capire la differenza...

luxsor Profilo | Guru

>però nn vedo la differenza..
>puoi usare la sub o la function ma ai fini pratici nn cambia
>nulla..
NO.
Se utilizzi la FUNCTION puoi ritornare un valore alla funzione chiamante, invece con la procedura SUB no.

'FUNZIONE CHE TI CALCOLA L'AREA DEL RETTANGOLO E TI RESTITUISCE IL VALORE
Function AreaRettangolo(ByVal Base As Integer, ByVal Altezza As Integer) As Integer
Return (Base * Altezza)
End Function

'CON LA PROCEDURA SUB QUESTO NON E' POSSIBILE PERCHE' LA SUB NON RESTITUISCE ALCUN VALORE ALLA FUNZIONE, QUINDI "RETURN" NON FUNZIONA
Sub AreaRettangolo(ByVal Base As Integer, ByVal Altezza As Integer)
Return (Base * Altezza)
End Sub

Spero che adesso riesci a vedere la differenza.





------------------------
Luxsor

chira Profilo | Newbie

cioè quindi la differenza tra procedurale e oggetti è che una può restituirti o meno un valore (quella ad oggetti) e la procedurale no.
giusto??
e questa sarebbe la differenza?

luxsor Profilo | Guru

>cioè quindi la differenza tra procedurale e oggetti è che una
>può restituirti o meno un valore (quella ad oggetti) e la procedurale
>no.
>giusto??
SI o meglio una delle tante differenze è questa.




------------------------
Luxsor

fasol Profilo | Junior Member

ciao allora:
una cosa è cos'è una procedura e una cosa è cos'è una funzione
una cosa è capire cosè la programmazione ad oggetti e una cosa è capire che cos'è la programazione imperativa.

Tu per la programmazione procedurale intendi programmazione imperativa.

che cos'è una procedura è un pezzo di codice il quale elabora un determinato dato.
che cos'è una funzione un pezzo di codice il quale elabora un determinato dato e restituisce un risultato.

la programmazione imperativa è quel codice, composto da procedure e funzioni, il quale, poi viene interpretato o compilato e viene eseguito da un'inizio fino alla fine.

la programmazione ad oggetti invece è l'implementazione delle classi le quali, come gli oggetti naturali, hanno proprieta, metodi , ed eventi associati.

per metodi, si intende funzioni che ti ritornano un valore da un'elaborazione.
per proprietà si intende delle caratteristiche specifiche della classe.
per eventi si intende, una funzione che si scatena ad un certo momento e per causa di un cambiamento.

esempio

classe quadrilatero
proprietà: lato1,lato2,lato3,lato4
metodo: calcola il perimetro.
evento: al cambiamento della lunghezza di un lato ti restituisce il nuovo perimetro.

spero che sia stato chiaro e ti sia stato di aiuto.




meglio i perdenti xkè hanno la speranza di vincere...cosa che i vincenti nn hanno....

chira Profilo | Newbie

devo essere proprio tarata ma a me sembrano la stessa cosa con nomi diversi.
alla fine anche le altre vengono eseguite da un inizio a una fine e anche una form che nn è una classe ha proprietà metodi ed eventi, ma nn è ad oggetti, quindi sono caratteristiche che ritrovo in entrambi e nn riesco a trovarne la differen<za.
boh ...
mi spiace avervi fatto "sbattere" x cercare di aiutarmi ma purtoppo nn riesco a capirne la differenza..
so che vi sembrerò del tutto scema (e nn avete tutti i torti) ma probabilmente mi mancano delle conoscenze di base che mi impediscono di capire chiaramente oppure nn so..
cmq ringrazio tantissimo x il vostro aiuto

fasol Profilo | Junior Member

Cmq vb6 è un linguaggio orientato agli oggetti....

la differenza la vedi tra Pascal o C(non C++)
e confrontandoli con Vb6.
Poi se ti interessa capire confronti vb6 con vb.net e capisci cos'è un linguaggio solo ad oggetti...

chiudi il post in modo che gli altri sappiano che hai trovato la soluzione oppure che hai rinunciato.


meglio i perdenti xkè hanno la speranza di vincere...cosa che i vincenti nn hanno....

chira Profilo | Newbie

li continuo a confrontare ma nn vedo differenze..
rinuncio..
grazie..
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5