Playing around with delegates and Value and Reference types in .net