Manage data in a .NET Framework application using .NET Framework 2.0 system types (System namespace)
Eccezioni: System.Exception è la classe base di tutte le eccezioni ed interrompono il flusso normale di lavoro dell’applicazione per un errore. Un’eccezione viene gestita dall’applicazione o dal gestore degli errori predefiniti.
Riassumento le eccezioni si intercettano con Try- Catch, dove il catch puo’ essere catch(1), catch(2)... per distinguere a priori su diversi tipi di eccezioni e prenderle in modo gerarchizzato...
Dopo il blocco Try-Catch il Finally viene sempre eseguito, in genere utilizzato per liberare risorse.
C’e’ un ApplicationException che indica un errore irreversibile, ma la guida consiglia di derivare le proprie eccezioni da System.Exception.
Per generare un’eccezione si usa: throw new myException(..parametri);
http://msdn2.microsoft.com/it-it/library/system.exception(VS.80).aspx
Boxing/Unboxing. E’ la tecnica con cui si passano da ValueType a ReferenceType.
object o = i; BOX: dove i è il classico intero o un altro valueType
int i = (int)o; UNBOX: per ottenere il valore indietro.
Ma per sapere cosa c’e’ dentro ad un oggetto.. if (o is int)....
http://www.csharpfriends.com/Articles/getArticle.aspx?articleID=38
TypeForwardedToAttribute: specifica un tipo che si trova in un altro assembly e serve per riorganizzare la posizione delle classi negli assembly senza dover modificare i chiamanti e quindi l’intera applicazione L’idea è semplice
stato iniziale:
· In un assembly A c’e’ una classe X con i suoi metodi
· Altri assembly dell’applicazione utilizzano la classe.
Dopo la ristrutturazione:
· In un assembly B c’e’ la classe X con i suoi metodi, stesso namespace
· Dall’assembly A è stata CANCELLATA la classe X
· Nell’assembly A è stata inserito il riferimento all’assembly B
· Nell’assembly A è stata messa una direttiva del tipo:
[assembly: System.Runtime.CompilerServices.TypeForwardedTo(typeof(mionamespace.X)]
· Nell’applicazione vengono messi i due nuovi assembly A e B
· L’applicazione non viene ricompilata, continua a pensare di guardare la libreria A, quest'ultima fa poi la ridirezione a B.
J A me ricorda il concetto della dichiarazione extern, anche se quella era solo per la compilazione, non per il runtime.
http://msdn2.microsoft.com/en-us/library/system.runtime.compilerservices.typeforwardedtoattribute.aspx