c# – 使用字符串进行算术运算的Concat结果
发布时间:2020-12-15 23:50:35 所属栏目:百科 来源:网络整理
导读:我是c#的新手,我正在学习课程.这是我试图编写的一段代码.我只想知道如何从“健康”中减去“伤害”,如下所示: (看结束) public void Message(){ Console.WriteLine(Name + " Has received " + Damage + " Damage which makes his health " + Health - Damage
我是c#的新手,我正在学习课程.这是我试图编写的一段代码.我只想知道如何从“健康”中减去“伤害”,如下所示:
(看结束) public void Message() { Console.WriteLine(Name + " Has received " + Damage + " Damage which makes his health " + Health - Damage); } 解决方法
你在这里遇到的问题是编译器如何编译这个表达式,这与一个名为
operator precedence的主题有关.
基本上它看到了这个: string + number - number 不幸的是,它首先将字符串与数字结合起来,因此你得到了这个: string - number 幸运的是,解决方案很简单,添加括号以使编译器在加号之前评估减号: ...his health " + (Health - Damage) ^ ^ +-- add these --+ 还有其他方法可以编写语句,以便此运算符优先级不起作用.你可以使用 Console.WriteLine(string.Format("{0} Has received {1} Damage which makes his health {2}",Name,Damage,Health - Damage)); 分散在.NET Framework中的一些方法甚至支持这种构建内置字符串的方法,而Console.WriteLine就是其中之一,因此您甚至可以将上述内容缩短为: Console.WriteLine("{0} Has received {1} Damage which makes his health {2}",Health - Damage); 或者你可以使用更新的语法string interpolation: Console.WriteLine($"{Name} Has received {Damage} Damage which makes his health {Health - Damage}"); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |