C # "Objets constants" à utiliser comme paramètres par défaut
Est-il possible de créer un objet constant(c'est à dire qu'il ne peut pas être modifié et est créé au moment de la compilation)?
Je suis juste de jouer avec le langage C# et remarqué le paramètre facultatif de la fonctionnalité et de la pensée qu'il pourrait être soigné pour être en mesure d'utiliser une valeur par défaut de l'objet comme paramètre facultatif. Considérez les points suivants:
//this class has default settings
private const SettingsClass DefaultSettings = new SettingsClass ();
public void doSomething(SettingsClass settings = DefaultSettings)
{
}
Ce n'est évidemment pas le compiler, mais un exemple de ce que je voudrais faire.
Serait-il possible de créer un objet constant de ce genre et l'utiliser comme valeur par défaut pour un paramètre facultatif??
source d'informationauteur user623879
Vous devez vous connecter pour publier un commentaire.
Pas, les valeurs par défaut pour les paramètres facultatifs sont nécessaires pour être des constantes de compilation.
Dans votre cas, une solution de contournement serait:
Généralement ce que vous voulez n'est pas possible. Vous pouvez faux avec un "invalide" par défaut de la valeur de l'Ani expositions de la réponse, mais ce chiffre se décompose si il n'y a pas de valeur, vous pouvez envisager des invalides. Ce ne sera pas un problème avec les types de valeur où vous pouvez modifier le paramètre d'un type nullable, mais ensuite, vous devrez vous acquitter de la boxe et peut également "diluer" l'interface de la fonction juste pour accueillir un détail d'implémentation.
Vous pouvez obtenir la fonctionnalité souhaitée si vous remplacez le paramètre facultatif avec la pré-C# 4 paradigme de plusieurs surcharges:
Cela fonctionne même si le paramètre est un type valeur.
Vous pouvez utiliser l'attribut lecture seule, au lieu de const. Par exemple: