Chris Burrows' [Old] Blog

C#, developer tools, abstract nonsense, etc.

Browse by Tags

Tagged Content List
  • Blog Post: On Dynamic Objects and DynamicObject

    As you know if you read my blog, C# 4.0 introduced some language features that help you consume dynamic objects. Although it’s not part of the language, most of the writing about dynamic in C# that I have seen, including my own, also contains some point about how you create dynamic objects. And they...
  • Blog Post: The Performance of Arrays

    Stop me if you’ve heard this one, but here’s some information about how arrays perform, and a neat trick you can do to (possibly) get some performance back. Some background In .NET, arrays of reference types are covariant in their element type, but not safely. Eric , as always, has a post that goes into...
  • Blog Post: Tour of Southern California, 2010

    This week, I'll be in California to speak at a few user groups about C# 4. This was arranged in coordination with the launch of Visual Studio 2010, and is one of several such tours that people on the VS Languages team are taking/have taken. I'll be in San Diego, Orange County, and South Bay. The details...
  • Blog Post: Visual Studio 2010 and C# 4 Launch!

    As I’m sure you’ve heard, we’re done! And you can download everything at your pleasure. Visual C# Express 2010 is available for free at the following link. For free! http://www.microsoft.com/express/downloads/ You can also download trial versions of the full Visual Studio SKUs from here: http://www.microsoft...
  • Blog Post: Errata: dynamic conversions and overload resolution

    When you stand up and tell the world how your software is supposed to behave a full year or more before you’re done working on it, a funny thing can sometimes happen. You can change your mind. And therefore be wrong by the time the software ships. And so it is with dynamic. Shortly after PDC ’08,...
  • Blog Post: Events get a little overhaul in C# 4, Afterward: Effective Events

    In Parts I , II , and III , I talked about the slight changes that we made to field like events, to the += and -= event accessor operators, and how this may affect you. Just so we’re all on the same page, I want to consolidate here a list of Dos and Don’ts so you know how to use these language features...
  • Blog Post: Events get a little overhaul in C# 4, Part III: Breaking Changes

    In the last two posts, I revealed that field-like events in C# 4 have a better synchronization story , and that we changed += and -= in a kind of subtle way to protect you, in many cases, from the semantic differences this introduces between C# 3 and C# 4. Now I’m here to tell you about some more...
  • Blog Post: Events get a little overhaul in C# 4, Part II: Semantic Changes and +=/-=

    Last time , we saw that the field-like event accessor code that the C# compiler emits has changed. And it’s better in a few ways because we’ve banished the locking code that we used to emit. There are a few questions that came up in the comments, and two of them in particular are probably as straightforward...
  • Blog Post: Events get a little overhaul in C# 4, Part I: Locks

    It’s been a long time since I’ve posted anything about the way the compiler generates field-like events, and I have some good news. We fixed them! Well, anyway, we changed them, and I believe that in C# 4, they are better than they used to be. Read this old post to refresh yourself, if you care. The...
  • Blog Post: MSDN Channel 9 Video on Dynamic

    About a month ago, Sam Ng and I sat down with Charlie Calvert and his video camera to record an interview-style video about dynamic. Have a look! http://channel9.msdn.com/posts/CharlieCalvert/CSharp-4-Dynamic-with-Chris-Burrows-and-Sam-Ng/ If you view it, I hope you find it helpful and informative. Also...
  • Blog Post: Dynamic type parameter constraints in C# 4

    What we know already So we talked about how you can define a class that has a base class that involves dynamic, such as // This is OK! class Derived : Base<dynamic> { } although you cannot use dynamic alone as a base class. And we talked about how you cannot define a class that implements...
  • Blog Post: Dynamic base classes in C# 4

    Ok, where were we? We have this new type called dynamic, and it’s used to tell the compiler to defer binding until runtime. We can construct other types with it as usual, and therefore use dynamic[], IEnumerable<dynamic>, List<dynamic>, and so on. But last time , in answer to the entirely...
  • Blog Post: C# “dynamic,” Part VII

    It has been a while since I posted anything here, and I have the same excuse everyone else does. Work, holidays, and generally being pretty busy. But enough of that, it’s February (!!!) and that means we’re getting closer to shipping C# 4.0 and dynamic and making all of this a much less abstract exercise...
  • Blog Post: C# "dynamic," Part VI

    [Update March 31, 2010: MUCH OF THIS HAS CHANGED SINCE PRE-RELEASE VERSION OF DYNAMIC. SEE THIS POST ] We left off last time with this piece of code public class C { public static void M(int i) { } public static void M(string s) { } } ... dynamic d = GetSomeD(); C.M(d); ...together with...
  • Blog Post: C# "dynamic," Part V

    [Update March 31, 2010: MUCH OF THIS HAS CHANGED SINCE PRE-RELEASE VERSION OF DYNAMIC. SEE THIS POST ] Let's look at this: dynamic d = null; object o = d; // not an implicit conversion Last time , I said that the conversion on the second line is not an implicit conversion. If you know C# already...
  • Blog Post: C# "dynamic," Part IV

    Today, let's geek out about the language design regarding the dynamic type. Type in the language vs. Type in the runtime One thing that lots of people already know is that when you say "dynamic" in code, you can think of it as "System.Object" in your assembly, because that's how the compiler emits...
  • Blog Post: Channel 9 Video on C# 4

    I'm a little backlogged at work right now, and I'll get back to some dynamic posts as soon as I can. In the meantime, Eric , Sam , Mads , and I talked with Channel 9 last week, and the video has just been posted. I look forward to watching it myself! Here's hoping I haven't said anything too embarrassing...
  • Blog Post: C# "dynamic," Part III

    Here are a few good resources that you ought to look at for information about dynamic from PDC: Anders Hejlsberg's talk, "The Future of C#" - Among other things, this talk is a great introduction to dynamic. I recommend it highly! There are some good demos, and Anders' presentation is very...
  • Blog Post: C# "dynamic," Part II

    Yesterday, I made an attempt to introduce the C# dynamic feature by describing what change there has been to the language, what scenarios we hope to affect by that change, and some overview of what dynamic operations look like in C# 4 as it stands in the preview distributed at PDC 2008. One thing...
  • Blog Post: C# "dynamic"

    PDC 2008 arrives today, and that means that I am finally able to talk publicly about some of the things I've been working on for the next version of C#. What a relief! I am excited for the world to see some of this stuff, and to start receiving more customer feedback about it. This afternoon, Anders...
  • Blog Post: Events in Space

    My last post was many months ago, and I've been pretty busy here since then. Nobody who starts a blog means to neglect it, even though mostly that's what happens. I won't let it go for so long again. =) Anyway, we were talking about events . Field-like events in particular, and the nastiness of their...
  • Blog Post: Field-like Events Considered Harmful

    Hi all, my name's Chris Burrows, and I'm a developer on the C# Compiler team here in Redmond. I'll introduce myself further in a subsequent post, but I just want to start off with a note that has at least a little substance. So let's talk about C# events as they've existed for a long time now, and...
Page 1 of 1 (22 items)