valores - Configuración del valor predeterminado de un parámetro opcional de C#
tipos de datos en c# visual studio (3)
No, no podrá hacer que el recurso funcione directamente en el valor predeterminado. Lo que debe hacer es establecer el valor predeterminado en algo como nulo y luego realizar la búsqueda de recursos cuando el parámetro tiene el valor predeterminado en el cuerpo del método.
Cuando intento establecer el valor predeterminado de un parámetro opcional en algo en un archivo de recursos, obtengo un error de compilación de
El valor de parámetro predeterminado para ''mensaje'' debe ser una constante de tiempo de compilación.
¿Hay alguna manera en que pueda cambiar cómo funcionan los archivos de recursos para hacer esto posible?
public void ValidationError(string fieldName,
string message = ValidationMessages.ContactNotFound)
En esto, ValidationMessages
es un archivo de recursos.
Otra opción es dividir su método en dos, y hacer que una sobrecarga llame a la otra, así:
public void ValidationError(string fieldName)
{
ValidationError(fieldName, ValidationMessages.ContactNotFound);
}
public void ValidationError(string fieldName, string message)
{
...
}
De esta manera también le permite pasar un valor null
como valor de message
en caso de que también sea un valor válido para ese parámetro.
Una opción es hacer que el valor predeterminado sea null
y luego rellenarlo adecuadamente:
public void ValidationError(string fieldName, string message = null)
{
string realMessage = message ?? ValidationMessages.ContactNotFound;
...
}
Por supuesto, esto solo funciona si no desea permitir el null
como un valor genuino.
Otra opción potencial sería tener un paso previo a la compilación que creara un archivo lleno de cadenas const
basadas en los recursos; Entonces podrías hacer referencia a esos consts. Sin embargo, sería bastante incómodo.