Che differenza c'è tra queste due eccezioni? Chi meglio di Brad Abrams può spiegarcelo!
Anche se in forma leggermente diversa anche Brad Abrams si è dilettato in un quiz.... Che sia una moda?
La risposta al quiz la trovate qui.
Oggi mi sono imbattuto in una possibile anomalia delle enumerazioni. Consideriamo una enum dichiarata così:
public enum MyEnum { Val0 = 0, Val10 = 10, Val2, Val3 = 7, Val11 = 11} Un possible frammento di codice che usa l'enum può essere il seguente:.....MyEnum p = MyEnum .Val11;int i = (int) p;Console.WriteLine("MyEnum : {0}, i: {1}", p, i);p = MyEnum .Val2; i = (int)p; Console.WriteLine("MyEnum : {0}, i: {1}", p, i); Cosa viene visualizzato a video? E' naturale aspettarsi di trovare le seguenti righe: "MyEnum : Val11, i: 11""MyEnum : Val2, i: 2"Invece inaspettatamente a video sarà stampato:"MyEnum : Val11, i: 11""MyEnum...
Evidentemente non sono l'unico a essermi fatto questa domanda....
Dando un'occhiata al codice di Mono, nell'implementazione della proprietà LocalEndPoint e RemoteEndPoint si può notare il seguente codice (e i commenti) :
"...
if(sa.Family==AddressFamily.InterNetwork || sa.Family==AddressFamily.InterNetworkV6 ) {
// Stupidly, EndPoint.Create() is an
// instance method
return new IPEndPoint(0, 0).Create(sa);
}
..."
Chissà se chi ha progettato (o implementato) la classe IPEndPoint lavora ancora in Microsoft:P
In questi giorni stavo dilettandomi a scrivere un Formatter personalizzato da affiancare al BinaryFormatter e al SoapFormatter. Grazie al prezioso link di Adrian sono partito leggendo la serie di articoli di Jeffrey Richter sulla serializzazione. Nel primo di questi articoli sono elencate la serie di operazioni eseguite da un generico Formatter durante la deserializzazione. In questa fase è citato il metodo statico FormatterServices.GetSerializableMembers. La documentazione microsoft riguardo questo metodo dice:
"Gets all the serializable member for a class of specified type". Inoltre nella sezione Remarks specifica: "Generally, members of a class are the nontransient, nonstatic members such as fields and properties. To be included, properties...