For classes, interfaces, delegate, array, nullable (such as int?) and pointer types, default(TheType) returns null:
class MyClass {}
Debug.Assert(default(MyClass) == null);
Debug.Assert(default(string) == null);
For structs and enums, default(TheType) returns the same as new TheType():
struct...