Lesson 4
Converting between types
Il Framework può convertire automaticamente i built-in types. Le conversioni di tipo widening sono permesse implicitamente in C# e VB. Quelle di tipo narrowing richiedono la conversione esplicita in C#.
Si chiama Boxing il passaggio da value type a reference type mentre Unboxing viceversa.
Entrambi comportano overhead e sarebbero da evitare, soprattutto in cicli. Si verifica boxing anche quando si chiamano metodi virtuali di una struct che eredita da System.Object (come ToString).
Le conversioni possono avvenire:
- Definendo operatori di conversione (nuovi del .Net 2.0);
- Sovrascrivendo ToString() e Parse() per conversioni a stringa e da stringa (ricordando che su determinati oggetti ToString ritorna il tipo);
- Implementando l'interfaccia IConvertible (Che permette di usare System.Convert);
- Implementando un TypeConverter per conversioni a Design-Time.
Con C# o VB (con strict abilitato) non sono permesse conversioni implicite se si perde precisione.
Technorati tags: [70-536]