Estoy trabajando con la unidad que parece estar serializando clases usando algunos constructores sin parámetros que crea.
El siguiente código no inicializó correctamente los valores:
public WarmthProvider(float initialWarmth = 1) { this.warmth = initialWarmth; }Mi solución se ve así:
public WarmthProvider(float initialWarmth) { this.warmth = initialWarmth; } public WarmthProvider() : this(1) { }(no, esto no está en una clase de monocomportamiento)
Al implementar esto, noté que lo siguiente era perfectamente legal y compilado:
public WarmthProvider(float initialWarmth = 1) { this.warmth = initialWarmth; } public WarmthProvider() : this(1) { }¿Por qué es esto posiblemente permitido? Seguramente esto es ambiguo en cuanto a qué constructor llamar. ¿No tienen ahora la misma firma? ¿Hay alguna razón por la que permitir esta sintaxis sea mejor que ser ilegal?