Existe-t-il un moyen plus simple d'ajouter 3 chaînes ensemble en les analysant comme des entiers, puis en transmettant la valeur résultante à une chaîne?
Par exemple:
public string SumVal;
public string val_1;
public string val_2;
public string val_3;
void Start()
{
SumVal = int.Parse(val_1) + int.Parse(val_2) + int.Parse(val_3);
}
3 Réponses :
Ah, il ne m'est pas venu à l'esprit que je peux ajouter les trois valeurs à l'intérieur d'un crochet et le passer à ToString (). Mais il semble que cela ne puisse pas être plus simple que cela.
SumVal = (int.Parse(val_1) + int.Parse(val_2) + int.Parse(val_3)).ToString();
Cela ne fonctionnera que si vos val_1, val_2 et val_3 contiennent toujours des valeurs entières. Si l'un d'eux n'est pas un entier, vous obtenez une exception System.FormatException.
Utiliser l'interpolation de chaîne
SumVal = $"{int.Parse(val_1)+int.Parse(val_2)+int.Parse(val_3)}";
Vous devez prendre soin du cas si la chaîne n'est pas convertible en int également sinon elle donnera une exception (System.FormatException: 'La chaîne d'entrée n'était pas dans un format correct.').
int x; int y; int z; bool b = int.TryParse(val_1, out x); int.TryParse(val_2, out y); int.TryParse(val_3, out z); SumVal = (x + y + z).ToString();
Où en prenez-vous soin? ;-)
parce que la valeur par défaut de int est 0 donc cela vous donnera 0, mais encore une fois ce ne sera pas une solution parfaite
Alors peut-être devriez-vous au moins lancer un avertissement if (! Int.TryParse (val_2, out var y) {Debug.LogWarning ($ "Impossible d'analyser Y avec l'entrée \" {val_2} \ "");} < / code>
... ou mieux, construisez-le robuste et propre, ce qui comprend l'éducation des OP sur la façon de le faire ;-)
cela donnera une erreur de compilation
basé sur ce stackoverflow .com / questions / 31711326 /… il n'y a pas de meilleur moyen
L'interpolation de chaîne irait mieux je pense
@NaveedYousaf définir "meilleur" (et aussi OP définir "plus simple") ... en lisibilité? Dans la maintenabilité? En étant à sécurité intégrée? En performance / efficacité? ...;)
@derHugo J'imagine qu'effectuer beaucoup d'opérations telles que la conversion de chaînes en entiers, puis de nouveau en chaîne, cela prend beaucoup de puissance de traitement si les valeurs sont en 100. Je cherchais donc un moyen plus simple sans convertir chaque chaîne en int.