很多时候,当生成要向用户显示的消息时,该消息将包含一些内容,我希望告知客户。
我举个例子:客户从1个或更多项中选择了许多项目,并单击了删除。现在,我想给客户一个确认消息,并且我想提到他所选的项目数量,以最小化他选择了一堆项目并在只想删除其中一个项目时误点删除的可能性。
一种方法是将通用消息设计如下:
int noofitemsselected = SomeFunction();
string message = "You have selected " + noofitemsselected + " item(s). Are you sure you want to delete it/them?";
这里的“问题”出现在noofitemselected
为1的情况下,我们需要写item和it而不是items和them。
我通常的解决方案是这样的:
int noofitemsselected = SomeFunction();
string message = "You have selected " + noofitemsselected + " " + (noofitemsselected==1?"item" : "items") + ". Are you sure you want to delete " + (noofitemsselected==1?"it" : "them") + "?";
如果代码中有很多对数字复数的引用,那么生成类似这样的消息就会变得非常冗长和丑陋,并且实际消息会变得难以阅读。
所以我的问题很简单。是否有任何更好的方式来生成这样的消息?
编辑
我看到很多人都被我提到消息框中显示消息这个情境所困扰了,他们只是给出了如何避免使用消息框的答案,这也很好。
但请记住,复数问题也适用于程序中其他位置的文本。例如,显示在显示选定网格中的行数的标签旁边的网格中,将具有与复数化相关的相同问题。
因此,这基本上适用于从程序以某种方式输出的大多数文本,那么解决方案并不像只需更改程序以不再输出文本那么简单 :)