Je fais une validation téléphonique pour 2 marques et les deux validations ont presque la même signification que des chiffres différents.
if (!MobileFormat(num, brand,currency))
{
if (brand.Equals(Brand.LED.ToString()))
{
key = "The number of phone numbers must be "9" digits.";
}
else
{
key = "The number of phone numbers must be "10" digits.";
}
}
Je m'attends à ce que la clé soit sur une seule ligne et non double et ne change que le chiffre.
3 Réponses :
essayez ci-dessous:
key = string.Format("The number of phone numbers must be {0} digits.", brand.Equals(Brand.LED.ToString()) ? 9 : 10);
Il suffit de capturer la valeur numérique avant de créer une chaîne.
if (!MobileFormat(num, brand, currency))
{
var digits = brand.Equals(Brand.LED.ToString()) ? 9 : 10;
key = $"The number of phone numbers must be '{digits}' digits.";
}
Avec deux lignes, vous reconnaissez rapidement que deux opérations impliquent et économise de l'espace horizontal.
Si l'une ou l'autre des chaînes est nullable, vous pouvez le faire:
if (!MobileFormat(num, brand, currency))
key = $"The number of phone numbers must be {(Equals(brand, Brand.LED.ToString()) ? 9 : 10)} digits";
Pourquoi ne pas utiliser un opérateur ternaire si vous n'avez que if et else?
La première instruction
ifest correcte, comme pour la seconde, vous pouvez utiliser Opérateurs ternaires . et quant à vous, cela ressemblerait à quelque chose commekey = brand.Equals (Brand.LED.ToString ())? "Le nombre de numéros de téléphone doit être composé de" 9 "chiffres." : "Le nombre de numéros de téléphone doit être composé de" 10 "chiffres.";