code
3 May 2012 | 0 Comments
In Peter Ritchie’s post Dispose Pattern and “Set large fields to null”, he states the following (my highlighting): At face value, setting a field to null means that the referenced object is now unrooted from the class that owns the field and, if that was the last root of that reference, the Garbage Collector (GC) [...]
Tagged in .net, C#, Programming
code
13 May 2011 | 0 Comments
In this post, we will see how to make the following code fail: object it = new SomeStruct { Item = 1 }; Floatsy(it); Console.WriteLine(((SomeStruct)it).Item); At runtime, it will throw an InvalidCastException!
Tagged in .net, C, code, horrid, Programming
code
4 April 2008 | 0 Comments
Say that you’re implementing a linked list, and you want an enumerator: public IEnumerator<T> GetEnumerator() { return new Stream<T,Node>(first, node => node.next == null ? null : Tuple.Of(node.next, node.datum).AsNullable()); } This uses the following utility class to implement the enumerator in one line (along with some code for Tuples and an extension method for structs): [...]
Tagged in .net, C#, IEnumerable
code
28 March 2008 | 0 Comments
Here’s the source code, as disassembled by Reflector: public static bool Equals(object objA, object objB) { return ((objA == objB) || (((objA != null) && (objB != null)) && objA.Equals(objB))); } It seems that not even Microsoft knows this! I spotted this code, from ASP.NET’s MVC implementation, on Scott Hanselman’s blog: return (other != null) [...]
Tagged in .net, C#, gotcha, snippets