I meant more the "it's ok if this is null" part. Does that comment not mean what I'm thinking it means? Because invoking a method on a null object will throw an exception.
In the case of an extension method, it's actually just syntactic sugar the compiler provides. An extension method is actually a static method underneath, this allows null checking to be centralized, and cleaner everywhere a step is used. The method looks like this: "public static IDisposable Step(this MiniProfiler profiler, string name, ProfileLevel level = ProfileLevel.Info) { return profiler == null ? null : profiler.StepImpl(name, level); }"
Nice. I've used extension methods from time to time but not in this way. Could prevent you from writing if foo != null a lot if you have an extension method by doing: public static bool Exists(this Foo foo) { return foo != null; }
So then you can say if(foo.Exists()) { foo.bar(); }
Or make Exists return an instance of Foo (foo if not null, a new Foo if not) and go with foo.Exists().bar();