John McCarthy (1) [Avatar] Offline
Hi Jon,

I thought I'd take a page from Willem's earlier comments and just provide a single post per chapter. Pleas feel free to respond to these items in whatever manner you may find most convenient in what I'm sure is a busy schedule.

Thanks for tackling a new edition of the new book!

Best Regards,
John McCarthy

p1: 6.1 - I found the wording in the second sentence unclear in part "While their core functionality has not changed over time, they have become gradually simpler to express..." Is the intent to say that properties are now gradually simpler to express or should this read "... they have gradually become simpler to express..."?

p1: 6.1 - I found the wording in the third sentence beginning "Properties allow us to differentiate between the API..." difficult to parse and I had to reread it to get the meaning. I think the confusion for me came from the elaboration in " allow users to access and manipulate its state..." A more succinct juxtaposition of "... between the API a type exposes, and the implementation detail ..." might be easier for readers to digest.

p4: In the last two paragraphs of 6.1 the comparison of functionality in C# 5 and C# 6 doesn't seem consistent. The statement "Up until C# 5, the language forced us to choose between simplicity of implementation and clarity of intent" suggests that with the advent of C# 5 this choice was no longer necessary. The next statement "In C# 6, we no longer need to compromise" seems to say that it was only with C# 6 that this compromise was no longer necessary.

p7: In the bulleted list at the bottom of the page, the wording "Setting an automatically implemented property is known to initialize the field." seems oddly passive. I read this as just saying that setting an automatically implemented property also initializes the field but is there some other mechanic at work here?

p13: The comparison of expression-bodied members to 'regular' lambda expressions in regard to being able to use them for void-returning methods may confuse some readers since you just made the point that the syntax of => doesn't designate a lambda expression for expression-bodied members.
jon.skeet (465) [Avatar] Offline
Thanks John - will include these in my next round of modifications.
jon.skeet (465) [Avatar] Offline
Now actually done smilie