Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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.