Antes de la versión 7.1 de C#, podías usar el operador por defecto para inicializar una variable como esta.
1int a =default(int);
csharp
Después de la versión 7.1, el literal por defecto puede ser usado para inicializar una variable.
1int b =defecto;
csharp
Veamos esto en un ejemplo más complejo.
123456789101112131415161718192021222324 usando System;namespace {publicclassDefValues{publicstaticvoidMain(){int a =default;float b =default;double c =default;string d =default;var e =newSystem.Collections.ArrayList(); Console.WriteLine($"La variable: {nombre de(a)} tiene valor: {a}"); Console.WriteLine($"La variable: {nombrede(b)} tiene valor: {b}"); Console.WriteLine($"La variable: {nombrede(c)} tiene valor: {c}"); Console.WriteLine($"La variable: {nombrede(d)} tiene valor: {d}"); Console.WriteLine($"La variable: {nombrede(e)} tiene valor: {e}"); Console.ReadKey();}}
csharp
La salida producida por la aplicación es la siguiente.
12345La variable: a tiene valor: 0La variable: b tiene valor: 0La variable: c tiene valor: 0La variable: d tiene valor:La variable: e tiene valor: Sistema.Colecciones.MatrizLista
bash
El nombre de la misma puede ser usado para obtener el nombre de una variable específica, clase, estructura, etc.
Otro ejemplo es el de las propiedades automáticas en C#. Cuando usas propiedades para describir el estado interno de tu clase, es importante atar los cabos sueltos. Podemos hacerlo simplemente inicializando las propiedades con valores por defecto. Esta característica se incluyó en C# con la versión 6.0.
12345678910111213141516171819 usando el Sistema;namespace {publicclassDefValuesAutoProp{publicstring Name {get;set;}=default;publicstring Age {get;set;}=default;publicDateTime Date {get;set;}= DateTime. Ahora;publicstaticvoidMain(){DefValuesAutoProp a =newDefValuesAutoProp(); Console.WriteLine($"La instancia de {nameof(DefValuesAutoProp)} llamada {nameof(a)} tiene propiedades Name: {a.Nombre} y Edad: {a.Edad}"); Console.ReadKey();}}}
csharp
El resultado producido es el siguiente.
1La instancia de DefValuesAutoProp llamada a tiene propiedades Nombre: y Edad: y Fecha: 2/17/2020 11:48:05 AM
bash
Incluso puede establecer valores predeterminados para las propiedades automáticas de sólo lectura.