|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Messaggi: n/a
|
[c#] differenza tra due cast???
che differenza c'è tra questi due cast?
Derived d = new Derived(); Base b = d; dove derived deriva da base DerivedClass B = new DerivedClass(); BaseClass A = (BaseClass)B; per caso la differenza è che il primo rimane una istanza di derived e l'altro diventa una istanza di baseclass'?? |
|
|
|
#2 |
|
Senior Member
Iscritto dal: Feb 2003
Città: Stockholm (SE)
Messaggi: 1343
|
i due casi sono equivalenti
l'oggetto mantiene le sue proprietà. semplicemente viene visto come se fosse un oggetto di classe base. |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 7863
|
semplicemente nel primo caso l' upcasting è implicito (coercion), nel secondo è esplicitato.
|
|
|
|
|
|
#4 |
|
Messaggi: n/a
|
v
quindi in entrambi i casi l'istanza è sempre DERIVED ma puntata come classe base giusto?
ma se volessi trasformare proprio l'istanza in una istanza di base come potrei fare? |
|
|
|
#5 |
|
Senior Member
Iscritto dal: Mar 2007
Messaggi: 7863
|
Approfondisci gli aspetti legati al polimorfismo e al binding dinamico.
|
|
|
|
|
|
#6 |
|
Messaggi: n/a
|
v
basta creare un metodo che copi i valori da una istanza all'altra!
se mi rispondevi cosi era meglio!!!! grazie cmq!!!! |
|
|
|
#7 |
|
Senior Member
Iscritto dal: Jan 2005
Città: Siena
Messaggi: 1313
|
|
|
|
|
|
|
#8 |
|
Messaggi: n/a
|
v
tu dici??
è scritto su guida allo sviluppatore c# della wrox...... a meno che tu non abbia inventato un tuo modo di programmare chiamato astorcas# il tuo parere è alquanto inutile |
|
|
|
#9 | |
|
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Quote:
![]() Comunque la risposta ha molto più senso di quanto pensi: ogni istanza di una classe B derivata da una classe A... è (is-a) a tutti gli effetti un oggetto anche della classe A, in quanto ne conserva tutte le proprietà e i metodi. Perché quindi sprecarsi a creare un metodo che ricopi tutto?
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
|
|
|
|
|
#10 |
|
Messaggi: n/a
|
v
ogni istanza di una classe B derivata da una classe A... è (is-a) a tutti gli effetti un oggetto anche della classe A, in quanto ne conserva tutte le proprietà e i metodi. Perché quindi sprecarsi a creare un metodo che ricopi tutto?
ma che ti rispondo a fare se non hai capito nemmeno quello che volevo sapere......lasciamo perdere.....
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Ottima domanda: che mi hai risposto a fare?
![]() Ho capito ciò che chiedevi, il punto è che ciò che chiedevi è sostanzialmente inutile.
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
|
|
|
|
#12 | |
|
Senior Member
Iscritto dal: May 2004
Città: Napoli
Messaggi: 773
|
Quote:
Pensavo fosse solo dovuto al periodo di esami universitari Per fortuna di gente gradevole da leggere ce n'è sempre (tu tra i primi) Per vittorio... inutile che rincari la dose, tralasciando l'arroganza, non so di che guida al C# parli, ma quella che suggerisce è una pratica che in ambito OOP non ha alcun senso. D'altra parte, di libri che propongono pratiche orride ne ho un paio anche io in libreria, pensa che il Deitel propone anche il sacrificio umano
__________________
If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilization. --Gerald Weinberg |
|
|
|
|
|
|
#13 | ||
|
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Quote:
Quote:
![]() Ma che davvero? ciao
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
||
|
|
|
|
|
#14 |
|
Messaggi: n/a
|
Deitel propone anche il sacrificio umano
ammazza che universita fai???? interessante!!!!! sara sicuro Scienze dell'Informazione sei un genio allora!!!!!!! scherzo quello che chiedo io non sarà pratica ma sicuramente teoria. fare il cast esplicito tra due classi derivate si può fare e volevo solo sapere quello. continua a studiare il deitel io mi prendo il wrox sicuramente piu interessante e scritto da gente mooooooooooolto piu brava e intelligente Ultima modifica di vittorio130881 : 04-08-2010 alle 09:49. |
|
|
|
#15 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
vittorio130881: ti consiglio di darti una regolata. Non si partecipa in questo modo in questo forum.
Fare un cast, implicito o esplicito, ad una classe base è sempre permesso. Senza alcun metodo che si occupa di copiare i dati membro a membro. Un'istanza di una classe derivata contiene sempre un'istanza della classe base. Ovviamente dovrai tenere conto anche dei metodi virtuali dei quali è stato fatto l'override. |
|
|
|
|
|
#16 |
|
Messaggi: n/a
|
v
a me sembra di essere stato attaccato....per una domanda....
poi fate voi.......cmq l'unico che mi ha risposto tranquillamente è stato come al solito kralizek...... gli aliri puoi leggere da te..... |
|
|
|
#17 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
astorcas ha solo corretto la tua affermazione.
Mi sembra che sia stato tu dopo a perdere il "controllo"... |
|
|
|
|
|
#18 | |
|
Senior Member
Iscritto dal: May 2004
Città: Napoli
Messaggi: 773
|
Quote:
Puoi scrivere il metodo che desideri, senza che questo ti inserisca tra i candidati per i sacrifici umani di cui sopra. Oltre però ad aver fatto uno sforzo inutile, perché questo meccanismo è già gestito dal linguaggio, è anche pessimo stile: il senso di utilizzare gerarchie di classi è quello di poter sostituire (anche se spesso ad un livello meno stretto di quello qui esposto formalmente) in ogni momento una classe derivata ad una base, dove la base è richiesta. Se ti occupi tu delle conversioni, direi che ignori uno dei punti centrali dell'OOP (tralasciando che in situazioni pratiche non saresti neanche in grado di applicare questa tecnica, a meno di determinare a run time il tipo, ma... dove ci siamo impelagati? siamo seri?!). Rispondo rapidamente all'altra carrellata di domande: no, non studio scienze dell'informazione, ma credo che giudicare una persona dalla facoltà che frequenta sia un po' kitsch (comunque studio ingegneria); il Deitel l'ho buttato in mezzo tanto per nominare un libro che non mi piace, e non mi interessa di sapere se chi l'ha scritto è più o meno furbo di chi ha scritto il tuo. P.S. ma sei davvero dell'81? Su, su, dai il buon esempio e smettila di dare addosso a ragazzi che potrebbero essere i tuoi figlioletti
__________________
If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilization. --Gerald Weinberg |
|
|
|
|
|
|
#19 |
|
Messaggi: n/a
|
v
ma chi ha dato su a nessuno!!!!
se ho offeso astorcas, e gli chiedo scusa, questo non vuol dire che gli altri mi debbano dare addosso!!!! cmq chiedo scusa per i toni usati! si aimè so vecchiotto oramai però al c# ci si può avvicinare a qualsiasi eta no? |
|
|
|
#20 | |
|
Senior Member
Iscritto dal: May 2004
Città: Napoli
Messaggi: 773
|
Quote:
__________________
If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilization. --Gerald Weinberg |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 13:13.






















