Compartir a través de


Error del compilador CS1750

Un valor de tipo no se puede usar como parámetro predeterminado porque no hay conversiones estándar al tipo

Ejemplo

En el ejemplo siguiente se genera la advertencia CS1750:

public struct S
{
    public override string ToString() { return "S::ToString"; }
}
public class A
{
    public static S Goo(S p = 42) { return p; }
}

No hay ninguna conversión estándar entre int y la estructura S recién declarada. El uso de un int de constante en tiempo de compilación para inicializar una instancia de struct S da como resultado CS1750. Agregar un operador de conversión definido por el usuario (por ejemplo, public static implicit operator S(int n) => ...) no corregirá este error porque eso no agrega una conversión estándar.