Sign In
Fabulous Adventures In Coding
Eric Lippert's Blog
Options
About
Email Blog Author
RSS for posts
Atom
RSS for comments
OK
Search
Advanced search options...
Search In:
Everything
Blogs
Forums
People
Groups
Places
Pages
Date range:
All Time
Last Year
Last 6 Months
Last 3 Months
Last Month
Last Week
Last Two Days
Tags
Aargh! (8)
accuracy (6)
Arrays (8)
ASP (11)
AStar (5)
Async (15)
bad jokes (14)
Begging the question (4)
Benford's Law (3)
Best Of FAIC (12)
Big Words (5)
Books (23)
Breaking Changes (24)
Brittle Base Classes (6)
C# (326)
C# 4.0 (39)
C# 5.0 (10)
Cargo Cult Programming (4)
cast operator (3)
Channel 9 (6)
Charts (6)
closures (3)
Code Generation (10)
Code Quality (29)
COM Programming (57)
Conditional Operator (3)
Continuation Passing Style (11)
Conversions (16)
Covariance and Contravariance (22)
customer service (4)
declaration spaces (5)
definite assignment (3)
Dialogue (14)
English Usage (11)
exception handling (9)
Floating Point Arithmetic (15)
grammars (9)
graph colouring (5)
GUIDs (3)
Hashing (9)
High Dimensional Spaces (5)
Immutability (27)
integer arithmetic (5)
Interviewing (8)
Introduction (6)
It Hurts When I Do This (5)
Iterators (10)
JScript (93)
JScript .NET (29)
keywords (4)
Lambda Expressions (20)
Language Design (62)
local variables (3)
localization (3)
Mathematics (18)
Memory Management (13)
Metablogging (9)
Mistakes (6)
Music (6)
myths (7)
namespaces (5)
Non-computer (37)
Optional arguments (5)
Overload Resolution (9)
Pages (25)
Performance (48)
precedence (4)
precision (7)
protected (7)
Puzzles (49)
quotable quotations (4)
Rants (51)
Rarefied Heights (52)
reachability (4)
Recursion (26)
reference (4)
Regular Expressions (13)
Relationships (4)
Salt (4)
Science (12)
scope (5)
Scripting (189)
Security (46)
shadowcasting (6)
SimpleScript (30)
Software development methodology (13)
Static Methods (6)
Threading (18)
Topological Sort (4)
Type Inference (18)
type safety (4)
unsafe code (4)
Value Types (11)
VBScript (80)
Video (12)
virtual dispatch (9)
VSTO (10)
warnings (5)
What's The Difference? (11)
Zombies (4)
Archive
Archives
May 2012
(1)
April 2012
(5)
March 2012
(3)
February 2012
(7)
January 2012
(5)
December 2011
(9)
November 2011
(4)
October 2011
(3)
September 2011
(3)
August 2011
(2)
July 2011
(5)
June 2011
(3)
May 2011
(7)
April 2011
(6)
March 2011
(9)
February 2011
(8)
January 2011
(7)
December 2010
(4)
November 2010
(8)
October 2010
(11)
September 2010
(8)
July 2010
(7)
June 2010
(7)
May 2010
(10)
April 2010
(9)
March 2010
(10)
February 2010
(8)
January 2010
(8)
December 2009
(5)
November 2009
(9)
October 2009
(9)
September 2009
(8)
August 2009
(9)
July 2009
(9)
June 2009
(12)
May 2009
(9)
April 2009
(9)
March 2009
(10)
February 2009
(4)
January 2009
(7)
November 2008
(2)
October 2008
(5)
September 2008
(4)
August 2008
(1)
July 2008
(2)
June 2008
(3)
May 2008
(11)
April 2008
(3)
March 2008
(2)
February 2008
(5)
January 2008
(5)
December 2007
(7)
November 2007
(5)
October 2007
(13)
September 2007
(3)
August 2007
(6)
July 2007
(2)
June 2007
(7)
May 2007
(4)
April 2007
(9)
March 2007
(2)
January 2007
(5)
November 2006
(3)
October 2006
(1)
September 2006
(1)
August 2006
(1)
July 2006
(2)
June 2006
(4)
May 2006
(5)
April 2006
(3)
March 2006
(4)
January 2006
(1)
December 2005
(7)
November 2005
(7)
October 2005
(9)
September 2005
(8)
August 2005
(9)
July 2005
(7)
June 2005
(7)
May 2005
(7)
April 2005
(12)
March 2005
(7)
February 2005
(6)
January 2005
(13)
December 2004
(9)
November 2004
(3)
October 2004
(5)
September 2004
(7)
August 2004
(14)
July 2004
(10)
June 2004
(11)
May 2004
(20)
April 2004
(26)
March 2004
(32)
February 2004
(14)
January 2004
(16)
December 2003
(7)
November 2003
(13)
October 2003
(32)
September 2003
(36)
June, 2009
MSDN Blogs
>
Fabulous Adventures In Coding
>
June, 2009
Posts
Subscribe via RSS
Sort by:
Most Recent
|
Most Views
|
Most Comments
Excerpt View
|
Full Post View
Fabulous Adventures In Coding
The void is invariant
Posted
over 3 years ago
by
Eric Lippert
20
Comments
[UPDATES below] A while back I described a kind of variance that we’ve supported since C# 2.0. When assigning a method group to a delegate type, such that both the selected method and the delegate target agree that their return type is a reference...
Fabulous Adventures In Coding
Iterators at the Summer Games
Posted
over 3 years ago
by
Eric Lippert
14
Comments
Ed "Scripting Guy" Wilson was kind enough to ask me to be a guest commentator at this years Summer Scripting Games , which have just completed. I've been working on a series for this blog about some unusual cases in the design of the "iterator block...
Fabulous Adventures In Coding
Mmm, Curry
Posted
over 3 years ago
by
Eric Lippert
9
Comments
A recent comment asked why Haskell programmers sometimes write C# lambdas in this style: Func<int, Func<int, int>> add = x=>y=>x+y; which is then invoked as sum = add(2)(3); because of course the first invocation returns...
Fabulous Adventures In Coding
It Already Is A Scripting Language
Posted
over 3 years ago
by
Eric Lippert
51
Comments
My recent post about the possibility of considering maybe someday perhaps adding "top level" methods to C# in order to better enable "scripty" scenarios generated a surprising amount of immediate emphatic pushback. Check out the comments to see what I...
Fabulous Adventures In Coding
Why Doesn't C# Implement "Top Level" Methods?
Posted
over 3 years ago
by
Eric Lippert
58
Comments
C# requires that every method be in some class, even if it is a static method in a static class in the global namespace. Other languages allow "top level" functions. A recent stackoverflow post asks why that is. I am asked "why doesn't C# implement...
Fabulous Adventures In Coding
Use your legs, not your back
Posted
over 3 years ago
by
Eric Lippert
11
Comments
In C# you can "lift", "raise" and "hoist", and they all mean different things. To "lift" an operator is to take an operator that operates on non-nullable value types, and create from it a similar operator that operates on nullable value types. (We...
Fabulous Adventures In Coding
Making it easier
Posted
over 3 years ago
by
Eric Lippert
19
Comments
I read an article in a technology column on MSNBC a while back, the upshot of which was “I have umpteen-dozen passwords I’ve got to have memorized these days; I thought technology was supposed to make my life easier!” Really? First of all, let’s...
Fabulous Adventures In Coding
What does the optimize switch do?
Posted
over 3 years ago
by
Eric Lippert
40
Comments
I was asked recently exactly what optimizations the C# compiler performs when you specify the optimize switch. Before I answer that, I want to make sure that something is perfectly clear. The compiler’s “usage” string is not lying when it says: /debug...
Fabulous Adventures In Coding
“Out Of Memory” Does Not Refer to Physical Memory
Posted
over 3 years ago
by
Eric Lippert
56
Comments
I started programming on x86 machines during a period of large and rapid change in the memory management strategies enabled by the Intel processors. The pain of having to know the difference between “extended memory” and “expanded memory” has faded with...
Fabulous Adventures In Coding
Fabulous Adventures In Russian
Posted
over 3 years ago
by
Eric Lippert
11
Comments
I am pleased to announce that a bunch of our Russian MVPs who (1) are awesome people and (2) apparently have some free time on their hands, have started translating this blog into Russian, of all things. So if you want some Фантастичные приключения на...
Fabulous Adventures In Coding
Alas, Smith and Jones
Posted
over 3 years ago
by
Eric Lippert
14
Comments
We have a feature in C# which allows you to declare a " friend assembly ". If assembly Smith says that assembly Jones is its friend, then code in Jones is allowed to see "internal" types of Smith as though they were public(*). It's a pretty handy feature...
Fabulous Adventures In Coding
Bug Psychology
Posted
over 3 years ago
by
Eric Lippert
30
Comments
Fixing bugs is hard. For the purposes of this posting, I’m talking about those really “crisp” bugs -- those flaws which are entirely due to a failure on the developer’s part to correctly implement some mechanistic calculation or ensure some postcondition...
Page 1 of 1 (12 items)