Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Eric Lippert's Erstwhile Blog
Never Say Never, Part One
Can you find a lambda expression that can be implicitly converted to Func<T> for any possible...
Author: Eric Lippert Date: 02/21/2011
Looking inside a double
Occasionally when I'm debugging the compiler or responding to a user question I'll need to quickly...
Author: Eric Lippert Date: 02/17/2011
What would Feynman do?
No one I know at Microsoft asks those godawful "lateral-thinking puzzle" interview questions...
Author: Eric Lippert Date: 02/14/2011
Optional arguments on both ends
Before we get into today's topic, a quick update on my posting from last year about Roslyn jobs. We...
Author: Eric Lippert Date: 02/10/2011
Strange, but legal
"Can a property or method really be marked as both abstract and override?" one of my coworkers just...
Author: Eric Lippert Date: 02/07/2011
Curiouser and curiouser
Here's a pattern you see all the time in C#: class Frob : IComparable<Frob> At first glance...
Author: Eric Lippert Date: 02/03/2011
Spot the defect: Bad comparisons, part four
One more easy one. I want to "sort" a list into a random, shuffled order. I can do that by simply...
Author: Eric Lippert Date: 01/31/2011
Spot the defect: Bad comparisons, part three
Did you notice how last time my length comparison on strings was unnecessarily verbose? I could have...
Author: Eric Lippert Date: 01/27/2011
Spot the defect: Bad comparisons, part two
Suppose I want to sort a bunch of strings into order first by length, and then, once they are sorted...
Author: Eric Lippert Date: 01/24/2011
Spot the defect: Bad comparisons, part one
The mutable List<T> class provides an in-place sort method which can take a comparison...
Author: Eric Lippert Date: 01/20/2011
Not as easy as it looks, Part Two
Holy goodness, did you guys ever find a lot of additional ways in which an "eliminate variable"...
Author: Eric Lippert Date: 01/17/2011
Not as easy as it looks
My colleague Kevin works on (among many other things) the refactoring engine in the C# IDE. He and I...
Author: Eric Lippert Date: 01/13/2011
Enormous Explosions
Welcome to 2011 everyone; I hope you all had as restful a time as I did over the winter break....
Author: Eric Lippert Date: 01/10/2011
Why are anonymous types generic?
Suppose you use an anonymous type in C#: var x = new { A = "hello", B = 123.456 }; Ever taken a look...
Author: Eric Lippert Date: 12/20/2010
All your base do not belong to you
People sometimes ask me why you can’t do this in C#: class GrandBase{ public virtual void M()...
Author: Eric Lippert Date: 12/13/2010
Asynchrony in C# 5, Part Seven: Exceptions
Resuming where we left off (ha ha ha!) after that brief interruption: exception handling in...
Author: Eric Lippert Date: 11/19/2010
Asynchrony in C# 5 Part Six: Whither async?
A number of people have asked me what motivates the design decision to require any method that...
Author: Eric Lippert Date: 11/11/2010
Asynchrony in C# 5 Part Five: Too many tasks
Suppose a city has a whole bunch of bank branches, each of which has a whole bunch of tellers and...
Author: Eric Lippert Date: 11/08/2010
Asynchrony in C# 5.0 part Four: It's not magic
Today I want to talk about asynchrony that does not involve any multithreading whatsoever. People...
Author: Eric Lippert Date: 11/04/2010
Asynchrony in C# 5, Part Three: Composition
I was walking to my bus the other morning at about 6:45 AM. Just as I was about to turn onto 45th...
Author: Eric Lippert Date: 11/01/2010
Asynchronous Programming in C# 5.0 part two: Whence await?
I want to start by being absolutely positively clear about two things, because our usability...
Author: Eric Lippert Date: 10/29/2010
Asynchrony in C# 5, Part One
The designers of C# 2.0 realized that writing iterator logic was painful. So they added iterator...
Author: Eric Lippert Date: 10/28/2010
Continuation Passing Style Revisited Part Five: CPS and Asynchrony
Today is when things are going to get really long and confusing. But we'll make it through somehow....
Author: Eric Lippert Date: 10/27/2010
Continuation Passing Style Revisited Part Three: Musings about coroutines
Last time I sketched briefly how one might implement interesting control flows like try-catch using...
Author: Eric Lippert Date: 10/25/2010
Continuation Passing Style Revisited Part Two: Handwaving about control flow
Last time on Fabulous Adventures: “But we can construct arbitrarily complex control flows by...
Author: Eric Lippert Date: 10/22/2010
Eric Lippert, from Microsoft?
No technology today, just an amusing story from a couple summers ago. Leah and I rent out a room in...
Author: Eric Lippert Date: 10/18/2010
Debunking another myth about value types
Here's another myth about value types that I sometimes hear: "Obviously, using the new operator on a...
Author: Eric Lippert Date: 10/11/2010
No backtracking, Part One
A number of the articles I’ve published over the years involve “backtracking”...
Author: Eric Lippert Date: 10/04/2010
The Truth About Value Types
As you know if you've read this blog for a while, I'm disturbed by the myth that "value types go on...
Author: Eric Lippert Date: 09/30/2010
Ambiguous Optional Parentheses, Part Three
(This is part three of a three-part series on C# language design issues involving elided...
Author: Eric Lippert Date: 09/27/2010
Is is as or is as is?
Today a question about the is and as operators: is the is operator implemented as a syntactic sugar...
Author: Eric Lippert Date: 09/16/2010
Teach Yourself C# In... how long?
Earlier this year I was the technical editor of "Teach Yourself Visual C# 2010 in 24 Hours" by Scott...
Author: Eric Lippert Date: 09/13/2010
Eric's solution for old school tree dumping
sealed class Dumper{ private StringBuilder sb; static public string Dump(Node root) { var dumper =...
Author: Eric Lippert Date: 09/09/2010
Old school tree display
I'm back from my various travels, refreshed and ready for more fabulous adventures in coding. A...
Author: Eric Lippert Date: 09/09/2010
Graph Colouring, Part Five
I said last time that I was interested in finding colourings for graphs that have lots of fully...
Author: Eric Lippert Date: 07/29/2010
Graph Colouring, Part Four
Let's give it a try. Can we colour South America with only four colours? Let's start by stating what...
Author: Eric Lippert Date: 07/26/2010
Graph Colouring with Simple Backtracking, Part Three
OK, we've got our basic data structures in place. Graph colouring is a very well-studied problem....
Author: Eric Lippert Date: 07/22/2010
Graph Colouring With Simple Backtracking, Part Two
Before I begin a quick note: congratulations and best wishes to David Johnson, currently the...
Author: Eric Lippert Date: 07/15/2010
Graph Colouring With Simple Backtracking, Part One
As regular readers know, I'm interested in learning how to change my C# programming style to...
Author: Eric Lippert Date: 07/12/2010
Spoiler Alert
The remaining video of the talk with Neal Gafter and me at NDC is up on the streaming content server...
Author: Eric Lippert Date: 07/08/2010