How do I create the default for a generic in VB? in C# I can call:
T variable = default(T);
- How do I do this in VB?
- If this just returns null (C#) or nothing (vb) then what happens to value types?
- Is there a way to specify for a custom type what the default value is? For instance what if I want the default value to be the equivalent to calling a parameterless constructor on my class.
Question 1:
Notice that the latter only works if you specify the
Structureconstraint for the generic type (for reference types,New T()in VB does something else thandefault(T)in C#).Question 2:
For value types all members of the struct are “nulled” out, i.e. all reference type members are set to
null(Nothing) and all value types are in turn nulled out.And no, since
stringis a reference type, it does not result in''for strings as suggested in the other answer.Question 3:
No, there’s no way to specify this. There are some threads about this on Stack Overflow already, e.g. here. Jon has posted an excellent explanation why this is.