Friday, May 29, 2009

Next meeting scheduled for 18.06.

As I'll be on holiday, we discuss Chapter 3 after my return on the 18th of June.

Edit: Forgot my notes at home - moved meeting to Monday 22nd of June.
Edit: Now Ralf has timing problems - moved meeting to Wednesday 24th of June.

Tuesday, May 26, 2009

First Session

Yesterday we had the first session of our study group. We prepared Chapter two of the book, and discussed items that seemed especially of interest, surprising or unclear for at least one of the group.
Not very surprisingly, few things were unclear, as it was a detailed refresher of basic parts of C# 1.
Still, for me as a beginner in C# (still less than four months of experience), I got a lot out of the book as well as the discussion.
Some were minor points, as the aggregation of delegates and also their immutability. Furthermore that delegates prevent garbage collection of the instance (if delegate instances) is pretty obvious, but previously it never occured to me.

A surprise to me was (as I never started with C# 1), that covariance and contravariance was a problem when dealing with delegates (signature had to be exactly the same). When discussing this, we also had to clarify the meaning of the words covariance and contravariance.
In simple words: covariance is "cast" to a more general object, contravariance to a more specific.
I.e. a cast from string to object would be covariant, object to string contravariant.

When talking about Extensions (which were new to me), we discovered that the usage of the string type is not completely intuitive to us. Methods like string.Format() are not usable like "hello {0}".Format("world"); The reason we came to this was that you could provide this behavior in writing an Extension for string.

When talking about the handling of strings, we also came to the discussion, if a parameter of a method is a string, sometimes you check it for null and emptyness.
You could throw two different, separate exceptions for this. Our feeling was though, that this would increase work, without really giving anyone that much information. If a string that is null or empty produces an exception the information whether it is null or empty is not that crucial. Although my feeling is that there are people who might not concur.

Thursday, May 14, 2009

First Study Group meeting Monday, 25th May

So the first meeting is scheduled.
Right now we plan to go through the book chapter by chapter.

Let's see how it will turn out.