撇号的正确评论代码

时间:2009-09-01 15:19:08

标签: c# comments apostrophe

很好奇你将如何评论这行代码:

string customerNm = customerNm.EndsWith("s") ? customerNm+= "'" : customerNm+="'s"; 

6 个答案:

答案 0 :(得分:4)

将它放入自己的函数中,并适当地命名函数。这应该足够清楚了。 (你也可以更轻松地测试它!)

string makePossessive(string customerName) {
    ...
}

答案 1 :(得分:3)

我根本不会发表评论。现在已经很清楚了。

如果您对其进行评论,则应该按照您的方式解释为什么

E.g:

/* Don't add "'s" for names ending on "s" 
  (request by Important Customer in June 1978) */

答案 2 :(得分:3)

我会用“不工作”来评论它。因为您在分配之前访问'customerNm'。

(您使用“customerNm + = ...”表示:创建一个新的字符串实例作为旧实例[尚未分配]和...的串联。)。

这甚至不应该被编译。

我认为你的意思是:

customerNm += customerNm.EndsWith("s") ? "'" : "'s";

其中customerNm是之前已分配过的字符串。

答案 3 :(得分:2)

不是您要问的问题,但看起来您的代码违反了grammar rules

名称不应该被视为复数名词,因为它以's'结尾。例如,如果詹姆斯有一只狗,那就是詹姆斯的狗,而不是詹姆斯的狗。但是,如果两个名叫迈克的生活伴侣有一条狗,那它就是麦克斯的狗。

例外:如果多音节名称以“ess”或“ezz”声音结尾,则可以将其视为以's'结尾的复数形式。如果Linus有一条狗,它可能是Linus的狗,虽然我相信Linus也是可以接受的。

答案 4 :(得分:1)

// Enforce English grammar
string customerNm = customerNm.EndsWith("s") ? customerNm+= "'" : customerNm+="'s"; 

答案 5 :(得分:1)


//Apply genitive case
string customerNm = customerNm.EndsWith("s") ? customerNm+= "'" : customerNm+="'s";