Web Log di Adrian Florea

"You know you've achieved perfection in design, not when you have nothing more to add, but when you have nothing more to take away." Antoine de Saint-Exupery
posts - 440, comments - 2715, trackbacks - 3944

My Links

Archives

Post Categories

Image Galleries

.RO Blogs

.RO People

.RO Sites

Blogs

Furls

Links

vinCitori

novembre 2007 Blog Posts

Il pattern Decorator e la decorazione con un extension method generico

Stamattina, al corso che sto tenendo di architettura base, ho presentato ai ragazzi il classico pattern Decorator per servirci poi nell'implementare i vari servizi di validazione, logging, caching, etc., come decoratori di un repository, ispirato da questo post di Ayende. Uno di loro mi ha chiesto se si poteva scrivere il corpo della CreateComponent in modo ancora piu' usabile. E mi e' venuta l'idea di utilizzare un extension method generico fluente, tanto per introdurli un po' anche nel mondo di C# 3.0 Partiamo dall'implementazione standard del pattern: using System; public interface IComponent {     void Operation(); } public class ConcreteComponent : IComponent {     public void Operation() {         Console.WriteLine("ConcreteComponent");     } } public abstract...

posted @ giovedì 29 novembre 2007 03:47 | Feedback (121) | Filed Under [ Pattern Dappertutto GUISA ]

Quiz Sharp #68 [con smiley]

Questo snippet (di cui manca un pezzo) si esegue in Visual Studio premendo F5 e rimane fermo al breakpoint definito nel codice del metodo Main. Muovendo poi lentamente il mouse sulla finestra dello snippet in Visual Studio, si nota che a volte viene stampato uno smiley :-) a console. class Quiz {     // da completare     static void Main() {         System.Diagnostics.Debugger.Break(); // breakpoint     } } Si chiede di completare il codice che manca.

posted @ domenica 18 novembre 2007 11:12 | Feedback (38) | Filed Under [ Quiz Sharp ]

Quiz #67 [triple wrapping exceptions]

Senza utilizzare alcun throw, completate il seguente snippet in tal modo che il catch stampi Ciao! a console e tutte e tre le inner exception devono essere di tipi diversi: using System; class Quiz {     // ... da completare     static void Main() {         try {             // ... da completare         }         catch (Exception e) {             if(e.InnerException != null && e.InnerException.InnerException != null && e.InnerException.InnerException.InnerException != null) {                 Console.WriteLine("Ciao!");             }         }     } }

posted @ sabato 3 novembre 2007 23:42 | Feedback (36) | Filed Under [ Quiz Sharp ]

Powered by:
Powered By Subtext Powered By ASP.NET