Even more about C# anonymous methods, from the source

Date:August 7, 2006 / year-entry #265
Orig Link:https://blogs.msdn.microsoft.com/oldnewthing/20060807-18/?p=30213
Comments:    81
Summary:If you want to know still more about C# anonymous methods, you can check out the web site of Grant Richins who has an entire category devoted to anonymous methods, and he should know, since he actually implemented them. Now that CLR week is over, I'm curious what you all thought of it. Would you...

If you want to know still more about C# anonymous methods, you can check out the web site of Grant Richins who has an entire category devoted to anonymous methods, and he should know, since he actually implemented them.

Now that CLR week is over, I'm curious what you all thought of it. Would you like to see another CLR week at some point? Should I stick to Win32? (Or doesn't it matter because I'm an arrogant Microsoft apologist either way?)

Comments (81)
  1. Nawak says:

    Win32 all the way!!

    I’m a big fan of your posts Raymond, but since I don’t know OOP really well (I didn’t even know what a delegate or a closure was), I prefer the windows history or the Win32 common mistakes, subtleties etc.

    By the way, I started your ‘scrollbars’ examples yesterday, and I found them very interesting! It’s amazing what you can learn from such a "trivial" scenario!

    (I think they were already over the first time I came here, that’s why I didn’t try them before)

  2. Frank says:

    Nice trip, but please stick to Win32 :)

  3. Tim says:

    I say mix it up.

    I’m sure it’ll upset some of your loyal readers, but i like seeing your blogging style applied to something other than the win32 stuff.

    I’m a .net/C# developer primarily, so obviously i’m biased. But i’ll read your blog either way. I’d just like to see it mixed up on occasion.

  4. Jere_Jones says:

    I agree.  Your Win32 perspective is extremely valuable!  Since I program primarily in C++, that’s what I value (and need) the most!

  5. Ian says:

    Please mix it up, your Win32 insights are wonderful but its nice to see your point of view and explanation mapped onto .NET!

  6. Jim Dodd says:

    I would find some articles about other CLR languages interesting. It seems that all we hear about are C# and VB.NET whenever .NET is mentioned. I’d like to hear about what other languages work with .NET and what other languages are possible in the future. I understand that C++ is (or is soon to be) a full fledged .NET language now with the C++/CLI specification. And Borland/DevCo has adapted Delphi for .NET. And isn’t Python now available? What about Ruby? Perhaps an article about what is involved in porting a language to .NET and what makes it difficult for some languages to become .NET languages.

    But don’t forget Win32. I have learned a lot from your blog.

  7. Bloth Naggerstad says:

    More C++ / Win32 please. And if you could explain time travel, that would be good too.

  8. AC says:

    Please, please keep only Win32.

    All other blogs are anyway chock-full of .NET.

    Let others do the .NET variants of your code, like it happened with a dictionary examples.

  9. Larry Lard says:

    Another vote for Win32. There are dozens if not hundreds of excellent .NET tech blogs, but I can’t think of anywhere but here that offers the same quality of insight into the motivations and workings of the Win32 world.

  10. Serge Wautier says:


    For the anecdote, you may find David Brabant’s blog interesting: He runs a ‘Exotic .NET Language of the Month’ category ;-)


  11. BryanK says:

    My vote is .Net once in a while, but only once in a while.  Say, one week a year or some other time period in that range.

  12. Marcel says:

    There seem to be a few blogger that can deliver good .NET content, but next to none that do good Win32 content. Therefore I prefer Win32 here because unlike .NET I cannot really get it anywhere else.

    On the other hand, a few days every few months or so doesn’t hurt and can be interesting enough. In the end it’s up to you anyway.

  13. Jim Dodd says:


    Thank you for the link. I had no idea there were so many languages available for .NET.


  14. Well, first off I’ve found pretty much anything you write to be damn good. (Thanks, by the way!)

    To answer your question, I’d rather hear C#. I work in C# all day long so I can actually use the C# articles, whereas the Win32 stuff is more interesting from a "Why is it like that?" historical standpoint.

    But hey, it’s your blog, and in my book whatever you’ve got to say about either topic is worth reading.

  15. Mike says:

    Definitely mix it up. Having the occasional .NET article is great for those of us who split our time between .NET and Win32. An article on common problems with Win32/Shell interop would be doubly  appreciated. e.g. Working with the system image list in .NET.

  16. ChrisR says:

    My vote would be to keep more to the Win32 stuff, with occasional .NET related topics.  The .NET articles are interesting, but like others have said, there are many resources for .NET and so few for Win32.

  17. Wilhelm Svenselius says:

    I, for one, would really like to see more C# weeks. The Win32 stuff is good, but a week of .NET now and then would be great.

    How about a .NET week per month? Or one .NET article per week?

    (Sorry if this post appears more than once. I seem to be having browser problems.)

  18. Alex S says:

    More weird Windows/Microsoft history. More .Net, say couple days every other month or so? or mix it in if it’s relevant to the topic at hand? But keep to the C#. There’s plenty of other resources for learning Ruby/Perl/Python out there.

    Please. :)

  19. Win32-only.  As others have said, there’s plenty of good .NET out there, but precious little on Win32.  If we only get so much "Raymond" each day, I’d prefer it to be on subject matter which is lacking expert voice like Win32.

  20. A. Skrobov says:

    I don’t personally program in either C++ or C#, but nevertheless I find the content devoted to them interesting.

    Anyway, I’d rather like more Win32 than more .NET :-)

  21. Like some people have said Raymond, it’s your blog. Do what you want with it. Most of us will keep coming back whatever you do.

    Personally, I would like to see a mix of C++ and .NET articles. But I’m a .NET guy so like some of the others; I’m bound to be biased.

    Keep up the damned good work.

  22. Nathan Lewis says:

    CLR is great, since that’s what I code in everyday, but anonymous methods are rather boring.

  23. Carlos says:

    The CLR week was interesting.  I’d be happy to see CLR posts more regularly along with the usual win32 stuff (which is often only tangentially related to win32 anyway.)

    And for more on anonymous methods, the C# language spec is surprisingly clear.  See section 14.5.15:


  24. KiwiBlue says:

    Win32/64 only, please.

  25. Matt says:

    Whichever moves you :)

    I’m biased on the .net side for my preference

  26. Dave says:

    my vote: more of everything!  this blog is a highlight of my work day, whatever the content.

  27. Koro says:

    Please keep the blog Win32-only please, it’s the primary reason I’m reading it.

  28. Rune says:

    More Win32. I write mostly C#, and uses WinForms, but (too) often I must go beneath the .NET-hood and call Win32 directly.

    Articles on the combination .NET/Win32 would also be interresting.

  29. "All other blogs are anyway chock-full of .NET. "

    they might be, but they are NOWHERE near good as Raymond’s insights

    please do mix it up a bit every once in a while

  30. Mihai says:

    I would vote for mix.


    I don’t care too much about C# or C or C++, the languages are presented in many-many places, blogs, etc.

    What I care for in your blog is very good insider info on Windows: why things are the way they are, traps, difficult things, poorly undocumented techniques.

    If you do that, I don’t care about the (programming) language, you can go with FORTRAN if you want :-)

  31. Mihai says:

    I would vote for mix.


    I don’t care too much about C# or C or C++, the languages are presented in many-many places, blogs, etc.

    What I care for in your blog is very good insider info on Windows: why things are the way they are, history, traps, difficult things, poorly undocumented techniques.

    If you do that, I don’t care about the (programming) language, you can go with FORTRAN or COBOL, if you want :-)

  32. Carey says:

    Win32!  I grew up doing Win16/32, but now I do .net and Java.  I can get that anywhere, but this is the only place to find out what’s really happening under the covers!

  33. Larry Hosken says:

    Less C#, more rebusrally.

  34. Peter says:

    Going against the flow here… .NET all the way. Really, 10 years ago the Win32 stuff would have been wonderful, but I avoid it like the plague now. While what you write is interesting, so much of it is baroque old-school stuff, and a lot of it must be embarrassing for all the compatibility and poor design choice hacks.

    Let the .NET devs deal with that stuff.

  35. Mr. Chen,

    I would like to request a split between Win32 and .Net.  Perhaps a 60 – 40 split with Win32 being 60 and .Net being 40.


  36. Jason says:

    As a C# developer I initially planned to vote for a mix, but I also agree with many other posters here that the .NET stuff is covered ad nauseum elsewhere.

    What about some articles around the edges?  At some point the MS implementation of .NET hits the Win32 API.  I can’t think of many people more qualified to talk about this interface than you.

  37. Rui Craveiro says:

    I would say neither, yet both! What do I mean? Well, stick to the concept of Win32 as the API exposed by Windows, but start talking about its new .Net version, .Net framework 3.0, aka WinFX. There is no need to cover even more .net, but the .Net based Windows API isn’t that covered yet.

  38. Mihai says:

    I would like to see you talk about any programming problem you find interesting.

    The programming skills that matter most are language and platform neutral.

  39. Mike Dunn says:

    Win32 only please. We need one voice of reason in the world. ;)

  40. asmguru62 says:

    Win32, please.

  41. Mike Swaim says:

    I’d like more .net weeks every now and then, if it’s something that you find interesting. Don’t go out of your way to find .net topics.

  42. Craig Stuntz says:

    Whatever you personally find interesting at the moment is fine with me.

  43. KiwiBlue says:

    [quote src="Rui Craveiro"]

    Well, stick to the concept of Win32 as the API exposed by Windows, but start talking about its new .Net version, .Net framework 3.0, aka WinFX.


    Rui, you shouldn’t get everything from MS marketing department literally :)

  44. Anonymous says:

    If you do another CLR week, could you give some tips about how to debug a CLR program with ntsd/windbg ?

  45. legolas says:

    While it was funny to see some of that clr stuff, I’m not using it, so I’m most interested in Win32 stuff. (As long as there’s enough of that left!) I sort of like the one-topic blogs, since that means I can read yours and micheal kaplans blog and have both things I have most exposure too, without all the stuff I’m not interested in (which currently includes clr).

    As someone else said above, there are enough clr blogs, I guess.

    Also, your subtitle is ‘not actually a .net blog’!

  46. Ry Jones says:


    You should blog about what you want to blog about. What feeds your passion? If it’s illuminating Win32 or delving into .net CLR, follow your passion.


  47. Dilip says:


    You have a gift of boiling everything down to its essence.  I think that advantage should not go to just Win32.  Please mix it up if you can.

  48. JSM says:

    I’d enjoy learning more about CLR-related things from you.

  49. cdn_kai says:

    Do what you want, it’s how you got this far.

  50. native cpp says:

    I am win32 developer but I don’t mind seeing some articles about c#. Since c# is based on c++, it may be beneficial to show some features (either language or its implemention of some win32 classes) that are unique to C# or different from c++

  51. Lance Fisher says:

    I like the CLR stuff, but I say write whatever you like and that will probably be the best content.  Great blog as always, Raymond.

  52. Things about .Net are much more likely to be directly useful to me than Win32 (although I’m happy to read the Win32 stuff out of interest). You regularly demonstrate the ability to "join the dots", specifically, to show that there is cause and effect in software. My preference, therefore, would be that you spend your time and energy blogging about .NET. It may be a higher level abstraction, but we still need cause and effect.

  53. Damian says:

    Both! Even though I am primarily .Net/C#, I enjoy the win32 too.

  54. alexandre.r. says:

    I’m waiting for the pumpkin hat knitting week.

  55. BenCon says:

    I enjoyed reading your perspective on managed code. I think it would be great if you covered it from time to time.

  56. steven says:

    Raymond, I love to read your Win32 stuffs, but if   you would like to talk something about managed code or OOP, why don’t you talk about Java? must your technical posts involve Microsoft’s technologies just because you’re working at Microsoft or you’re actually merely prefer talking .NET over Java?

    [What little I know about .NET I know even less about Java. May as well ask me to write about Smalltalk while you’re at it. -Raymond]
  57. steven says:

    [What little I know about .NET I know even less about Java. May as well ask me to write about Smalltalk while you’re at it.]

    Okay, may I know what makes you to know .NET a little but not Java? Actually I’m not saying Java is better and you should write about it. But I believe the developer like you isn’t going to write something just because you are closer to them. I’m sure you always write about something you find interesting. Am I right to say that?

    [If I worked at a company where lots of people are writing code in Java then I’d probably know more about Java. I never studied .NET; this all came in via osmosis. -Raymond]
  58. steveg says:

    Why not have a PayPal link (donate to charity or to yourself, whatever) and let people buy the next topic… :-) just kidding.

    Write whatever you find interesting. Anyways times change, how long before .Net was the Old New Thing.

  59. Judah says:

    I case another vote for more CLR topics. I loved these posts on C# anonymous methods, really informative and more in-depth than you’d find in most places.

    I think some of your readers will whine about there being too many .NET blogs and too few Win32 blogs, but it’s not as if you’re dedicating your whole blog over to the CLR; just an occassional post on the CLR. Adds a little salt to the whole meal. IMO, that’s a good thing.

  60. Norman Diamond says:

    Since your colleague Larry Osterman pointed us to a pointer to this:


    we can see the answer…

    Unmanaged coding was far more productive than common managed coding.

  61. JamesW says:

    Keep it old school – my favourite articles are the ones that explain why some strange corner of Windows is the way it is. Win32 is good, but examples with their roots in Win16 or DOS are even better!

  62. Cheong says:

    I say Win32 too. But it’ll be nice if you’ll put some interesting stories regarding .NET stuffs too. :)

    (Actually, I love hearing interesting stories than codes… shame on me as a programmer)

  63. dono says:

    I enjoyed the "C# week".

    However, I felt that it lacked the technical details and insights that I am accustomed to in your Win32 posts. For example, the various posts about anonymous methods, while a good read, was nothing more than you could find out by looking at ILDasm or Reflector.

    I often find the Win32 posts interesting. That being said, however, these days I typically work entirely in managed code.

    I would love to see a real "CLR week" dealing with lower level concepts such as the runtime, IL, metadata, JITing, etc. I am always fascinated by the inner workings of things.

    Of course it need not be a week. Just mix it in with your regular flow.

  64. James says:

    Win32 all the way for me – partly because I don’t use or want .Net, more because, as others have said, there are plenty of .Net sites out there already – far fewer with this level of insight into Win32’s anatomy.

    Of course, given a *free* choice I’d want more coverage of the Native API – probably less useful to Raymond’s regulars than .Net, but also less well served than .Net is…

  65. Anonymous Coward says:

    There’s a madness to my method.

  66. I enjoyed the ‘CLR Week’, and looking forward to having more of them. I guess a mixture of keeping dotnet at 15 to 20 % of your posts will be helpful and interesting for me.

  67. Andy C says:

    As long as you stick to your usual interesting and amusing style I’m sure to keep reading, whether it be Win32, .NET or withered hands…

  68. Please do more .NET stuff! You’ve got a great writing style, but I don’t write in Win32 anymore, so most of your posts are interesting to read but not much value. The .NET stuff is both interesting *and* useful. :-)

  69. Norm says:

    Mix it up, C# Win32, it’s all good wholesome reading.

  70. Mix it up.  Most of your Win32 stuff is beyond what I do.  And so is some of the CLR stuff.

    But I like to read about both, and I pull bits out that I can use.

    So… mix it up.

  71. pvginkel says:

    Please, Win32.

  72. Neil says:

    I’d like all arrogant Microsoft apologists, if you can find any, to stick to Win32.

  73. Mitch says:

    Please, more win32 stuff!  I don’t work on Windows at all, but the concepts are general-purpose enough that I can be enlightened anyway.

  74. Andrew says:

    Here was my original comment before I took the time to actually read the other ones, and I noticed that many people (Jason, etc) had this idea:

    "Why does it have to one way or the other– how about you do the occastional extra posting about (wait for it) *where Win32 and .NET meet*!  WHOA….WHOA…IS YOUR MIND BLOWN? No? Okay, but I still vote for it."

    I do a lot of .NET UI work but I find myself digging down into Win32 all the time.

  75. Jarle Nygård says:

    I really, really enjoy reading about ‘weirdness’ in the Win32/kernel/memory areas. Windows/Dos/Microsoft history is just brilliant!

    Your take on Win32 vs. .net would make for interesting topics I think, like the dictionay thingy! Very cool! :)

  76. Lorenzo says:

    Please focus on Win32. Despite .NET, Win32 will still be the choice for the "big" projects for a lot of time. A lot of people are still choosing the unmanaged world… the real world. And, after all, Win32 is always under the hood, even under .NET :-)

  77. Mike Fried says:

    Your blog is not a democracy, but it’s nice of you to ask your readers. :)

    I say that if you write about topics that you care about and know about, then people will continue to read/enjoy your posts. I for one have enjoyed this digression into C#. I’m always interested in your explainations of what’s going on under the hood.

  78. Jennie says:

    More win16 stuff please. Have yet to catch on win32.

  79. Arno Schoedl says:

    Win32 please. I am still mad that Microsoft forces garbage collection and P-code execution down everyone’s throat…

  80. Isaac says:

    I program with both Win32 and C#. I would prefer that you post about Win32 most of the time, but have some .NET posts too. I don’t read any other .NET blogs because I don’t learn anything I really care about and I won’t be using Avalon as that doesn’t work with Mono on Linux (or pre-WinXP).

  81. CLR Week: A new annual tradition.

Comments are closed.

*DISCLAIMER: I DO NOT OWN THIS CONTENT. If you are the owner and would like it removed, please contact me. The content herein is an archived reproduction of entries from Raymond Chen's "Old New Thing" Blog (most recent link is here). It may have slight formatting modifications for consistency and to improve readability.

WHY DID I DUPLICATE THIS CONTENT HERE? Let me first say this site has never had anything to sell and has never shown ads of any kind. I have nothing monetarily to gain by duplicating content here. Because I had made my own local copy of this content throughout the years, for ease of using tools like grep, I decided to put it online after I discovered some of the original content previously and publicly available, had disappeared approximately early to mid 2019. At the same time, I present the content in an easily accessible theme-agnostic way.

The information provided by Raymond's blog is, for all practical purposes, more authoritative on Windows Development than Microsoft's own MSDN documentation and should be considered supplemental reading to that documentation. The wealth of missing details provided by this blog that Microsoft could not or did not document about Windows over the years is vital enough, many would agree an online "backup" of these details is a necessary endeavor. Specifics include:

<-- Back to Old New Thing Archive Index