The Author Online Book Forums are Moving

The Author Online Book Forums will soon redirect to Manning's liveBook and liveVideo. All book forum content will migrate to liveBook's discussion forum and all video forum content will migrate to liveVideo. Log in to liveBook or liveVideo with your Manning credentials to join the discussion!

Thank you for your engagement in the AoF over the years! We look forward to offering you a more enhanced forum experience.

mgravell (64) [Avatar] Offline
using the made-up key:

> your text ###my highlight###
my thought


> The world is changing at a ###page### which is sometimes terrifying,

> Dynamic Runtime Library (DLR)
Genuine question (I'm not familiar); is the abbr correct? Dynamic Language Runtime?
Couldn't really find much on either, so I don't claim any knowledge other than it
caught my eye.

> but for this book I will call it the action of the ###delegate###.
you have rigorously otherwise referred to "delegate instance" or "delegate type"
(indeed, remarked as such yourself); should this be delegate instance?

> and when the ###delegate### is invoked,

> Utter garbage!
given that this chaper is about dispelling myths, it could be interpreted
as though you mean that "the following paragraph is a common misconception,
and the reader should dismiss it"

> You can use BeginInvoke and EndInvoke to invoke a ###delegate### asynchronously,
delegate instance?

> as a chain of ###events### occurring at different times
perhaps an unfortunate term given the context, but I can't think of a better one
jon.skeet (483) [Avatar] Offline
Re: Misc thoughts
Thanks very much for the feedback - it's great to have eagle-eyed readers!

I've changed all but two points:
1) The "utter garbage" - it's only one section (a bit later) which is really about myths. I kinda like the feeling of "utter garbage" but will give it a bit more thought. (I've marked it up in the document.)

2) The "chain of events": yes, I see the issue, but I can't think of better wording either. Again, I'll flag it up and see what I can do.

Please post similar comments, however trivial they may seem!

mgravell (64) [Avatar] Offline
Re: Misc thoughts
> (listing 2.5)
You observe that #3 is [q]a little cumbersome[/q]; perhaps space for a more terse #4?

handler = delegate { Console.WriteLine("Also handled anonymously"); };
handler(null, EventArgs.Empty);

This also demonstrates an additional language feature of anonymous methods. You may have covered this later (I'm commenting on my first read)

> True[18] story:
Love the footnote ;-p
(aside) Reminds me of the other gem, where something is true*
[* for small values of true]

3.1 [although actually throughout]
> non-private ###fields###
Just an observation that you alternate in terminology between "field" and "instance variable"; this may well be intentional (where "instance variable" precludes static fields). I can't see this causing any confusion at all, but just thought I'd bring it to your attention "in case".
mgravell (64) [Avatar] Offline
Re: Misc thoughts
> that the type argument used has a parameterless constructor. This

3.3.1, table 3.2
there's a hanging "1.2"; not sure what it is...
mgravell (64) [Avatar] Offline
Re: Misc thoughts
> any (non-static) class without any explicitly declared constructors,
concrete? an abstract class without an explicit ctor will fail

> and any class with an explicit parameterless constructor

tables 3.1 thru 3.3 all have hanging 1.1 thru 1.3 - however the tables in other sections don't
jon.skeet (483) [Avatar] Offline
Re: Misc thoughts
1) Delegate with more terse #4: Done, thanks.
(Note to self: must explain that it's really helpful for event handlers:

event EventHandler Foo = delegate { }; // No need for nullity checks now!

2) "True story" - yes, that's one of my favourite bits of the book too.

3) Fields/instance variables. Yes, it's deliberate to avoid using the same word too many times in quick succession. It's a bit annoying as an author that a good thing in general writing style is to use a variety of words, but a good thing in technical discussions is to be consistent in the use of terminology.

Onto the next one...
jon.skeet (483) [Avatar] Offline
Re: Misc thoughts
Parameterless constructors and abstract classes: true. I should also note that it needs to be a *public* parameterless constructor. The text is a bit ugly now, but it's correct:

Our final kind of constraint (which is expressed as T : new() and must be the last constraint for any particular type parameter) simply checks that the type argument used has a parameterless constructor which can be used to create an instance. This applies to any value type, any non-static, non-abstract class without any explicitly declared constructors, and any non-abstract class with an explicit public parameterless constructor.
</quote. >

Table 3.2: Odd. I'll let my editor know. It's not in my Word document.