C# operatore cast

domenica 09 maggio 2010 - 11.23

fixed Profilo | Junior Member

ciao a tutti,
stavo studiando la conversione tra dati.
per quanto riguarda l'operatore cast non è ben capito come si deduce se la conversione si
può fare oppure no.

mi date due dritte?

in particolare ho visto che ci sono due tipi di conversioni:
quelle implicite
quelle esplicite che necessita dell'opertore cast.

e in quest'ultimo caso che non ho ben capito come fare a capire se l'operazione di csting è fattibile o meno.
ho visto che viene usato l'operatore is ma non riesco . potete propormi un esempio per capire?

grazie

alx_81 Profilo | Guru

>ciao a tutti,
Ciao

>stavo studiando la conversione tra dati.
>per quanto riguarda l'operatore cast non è ben capito come si
>deduce se la conversione si può fare oppure no.
il cast fa la conversione e con esso non è possibile capire se la conversione si può fare o meno.
La cosa migliore è usare tipizzazioni forti, evitando il più possibile le conversioni esplicite e soprattutto quelle che in certi casi girano ed in altri no (ad esempio conversioni di stringhe in date o numeri, stringhe che non si sa cosa potrebbero contenere).
Detto questo potresti usare l'operatore as:

http://msdn.microsoft.com/en-us/library/cscsdfbt(VS.71).aspx

ReferenceType obj; obj = YourObject as ReferenceType; if (obj == null) // cast fallito else // cast ok

ma funziona solo coi reference types.
Per i value types dovresti usare un blocco try catch e gestire una conversione esplicita.

>grazie
di nulla!

--

Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
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-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5