Suppose I have three methods:
void Foo(MemoryStream v) {Console.WriteLine (\"MemoryStream\");}
void Foo(Stream v) {Console.WriteLine (\"Stream\");}
void Fo
default(T) will always return null when type T is of reference type and will return zero if T is of numeric value types.
So at any time its not returning an object using which you can call your overloaded version of Foo methods.
So Short answer you cant do this, you have to find out other ways to call overloaded methods.