很多时候,当生成要显示给用户的消息时,消息将包含许多我想通知客户的 什么的。
我将给出一个例子: 客户已经选择了一些项目从1和以上,并点击删除。现在,我想给客户一个确认消息,我想提到他选择的项目数量,以尽量减少他犯错误的机会,选择一堆项目,并点击删除时,他只想删除其中之一。
一种方法是这样制作一般信息:
int noofitemsselected = SomeFunction();
string message = "You have selected " + noofitemsselected + " item(s). Are you sure you want to delete it/them?";
这里的“问题”是 noofitemselected
为1的情况,我们必须编写 项目和 它而不是 物品和 他们。
我通常的解决方案是这样的
int noofitemsselected = SomeFunction();
string message = "You have selected " + noofitemsselected + " " + (noofitemsselected==1?"item" : "items") + ". Are you sure you want to delete " + (noofitemsselected==1?"it" : "them") + "?";
如果代码中有很多对数字复数的引用,并且实际的消息很难阅读,那么这个过程就会变得相当长,而且非常讨厌,非常快。
所以我的问题很简单,有没有更好的方法来产生这样的信息?
剪辑
我看到很多人对我刚才提到的信息应该显示在一个信息框内的情况非常着迷,他们只是简单地回答如何避免使用这个信息框,这是很好的。
但请记住,多元化的问题也适用于文本其他地方的方案,除了消息框。例如,在显示网格中所选行数的网格旁边的标签在多元化方面也会遇到同样的问题。
所以这基本上适用于从程序中以某种方式输出的大多数文本,那么解决方案就不再是简单地将程序改为不再输出文本:)