[70-536] Converting between types

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:

Print | posted @ venerdì 18 gennaio 2008 22:17

Comments have been closed on this topic.