Home
C#
default Operator
Updated Dec 8, 2022
Dot Net Perls
Default. Every reference and value type has a default value. This value is returned by the default(Type) expression. Default is most useful for writing generic classes.
Notes, generic method. In a generic method, sometimes we need to return a value that is not yet initialized—we can use default() for this.
First example. We look at 4 uses of the default operator. The 4 types we apply the default expression to are the StringBuilder, int, bool and Program types.
StringBuilder
int
bool
Finally The values that were assigned are printed to the screen. The null value is printed as a blank line.
null
using System; using System.Text; class Program { static void Main() { // Acquire the default values for these types and assign to a variable. StringBuilder variable1 = default(StringBuilder); int variable2 = default(int); bool variable3 = default(bool); Program variable4 = default(Program); // Write the values. Console.WriteLine(variable1); // Null Console.WriteLine(variable2); // 0 Console.WriteLine(variable3); // False Console.WriteLine(variable4); // Null } }
(Blank) 0 False (Blank)
Default, generic class. Here we have the generic class Test, which requires a class parameter with a public parameterless constructor.
Generic
Detail This method returns a new instance of the type parameter. If the size field is 0, it returns the default value.
using System; using System.Text; class Test<T> where T : class, new() { int _size; public T GetOrDefault() { // Use default in a generic class method. return _size == 0 ? default(T) : new T(); } } class Program { static void Main() { Test<StringBuilder> test = new Test<StringBuilder>(); Console.WriteLine(test.GetOrDefault() == null); } }
True
A discussion. The default value expression is implemented using static analysis. This means the default expressions are evaluated at compile-time, resulting in no performance loss.
So No reflection to the type system or metadata relational database is used at runtime.
Intermediate Language
And Unlike with typeof expressions, caching the default expression would have no benefit.
typeof
A summary. We looked at the default value expression. By understanding the usage of the default value expression, we can better understand the type system.
Dot Net Perls is a collection of pages with code examples, which are updated to stay current. Programming is an art, and it can be learned from examples.
Donate to this site to help offset the costs of running the server. Sites like this will cease to exist if there is no financial support for them.
Sam Allen is passionate about computer languages, and he maintains 100% of the material available on this website. He hopes it makes the world a nicer place.
No updates found for this page.
Home
Changes
© 2007-2025 Sam Allen