Presenting about advance use of delegates & generics in the next C# group

I’m going to give a deep insight presentation about advanced usage of delegates, generics and anonymous methods at the next C# group meeting.

Please let me know if you’re planning to come(drop me a comment), it will be nice to see some of my co-workers\readers\friends at my first lecture at Microsoft user groups.

The original excrept can be found here. (don’t forget to register, free of charge, by sending an email to: ivcug at comconix dot com)

The Details:

Date:    Wednesday, May 17, 17:00 – 20:00

Place:   Microsoft Israel 

            Hapnina 2  (Amdocs Building)

            Ground Floor


+972 (9) 762-5100         


Parking available at the Kurkar parking lot. Proceed straight past the traffic circle and the parking lot will be on your right.

Topic: Advanced Use of Delegates and Generics

Lecturer: Oren Ellenbogen

 This lecture will not be just about Delegates or Generics, but it will combine those topics to show you how you can leverage to usability of those semi-new features. Oren will discuss the receiving of delegates as parameters and the implementation of abstraction in this methodology. He will tie the two topics together by refactoring(live!) existing code using a principle he calls “Code Templating”;  a coding method that allows running unique logic within recurrent code.


  1. Looking at a “simple” scenarios of recurrent code

    1. Check if a value exists in a collection.
    2. Get the item index in a collection.
    3. Filtering a collection (get only some of the items based on a condition).
    4. Manipulating every item in the collection (string concatenation for example).

  2. Looking at “advanced” scenarios of recurrent code

    1. Querying the database.
    2. Exception handling.

  3. Discuss solutions for further abstraction in those scenarios.
  4. Introduce “Code Templating” – separating the unique code from the recurrent code.
  5. Before we start, getting to know our toolbox: generics & delegates

    1. What are they?
    2. Calling a delegate which was given as parameter – understand the benefits.
    3. Anonymous delegates\methods – how & why
    4. What’s going on under the hood?

  6. Examples of Code Templating in .Net 2.0

    1. Handle those “simple” scenarios via List<T>.Find, List<T>. FindAll, List.<T>.Exists etc…

  7. Refactor (live!) the “advanced” scenarios, step-by-step.
  8. Code Templating – What do we gain? What can we lose?
  9. Q & A


Oren Ellenbogen is a Team Leader at SQLink’s R&D Department. Oren’s responsibilities and areas of expertise span from Analyzing and Designing Web Applications to developing innovative coding enhancement tools. Oren’s project leading at SQLink involves all stages and forms from team leadership to high level consulting.

 Oren’s years of developing experience cover a variety of languages including PHP, C++, VB6 and C#.

 Oren published a series of articles at, publishes a programming oriented blog and is an active member of several .Net architects forums.

 As always, although admission is free and you may attend without reserving a place, we kindly request that you notify us if you plan to attend so that we can be sure to have enough chairs and FOOD!


Oren Ellenbogen