0

このコード行にどのようにコメントするか興味があります:

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

6 に答える 6

4

それを独自の関数に入れ、関数に適切な名前を付けます。それは十分に明確なはずです。(そして、より簡単にテストすることもできます!)

string makePossessive(string customerName) {
    ...
}
于 2009-09-01T15:27:03.397 に答える
3

必ずしもコメントする必要はありません。そのままでも十分クリアです。

コメントする場合は、なぜそのようにするのかを説明する必要があります。

例えば:

/* Don't add "'s" for names ending on "s" 
  (request by Important Customer in June 1978) */
于 2009-09-01T15:22:55.030 に答える
3

「機能していません」とコメントします。割り当てる前に「customerNm」にアクセスするためです。

(「customerNm+=...」を使用します。これは、古いインスタンス [まだ割り当てられていない] の連結として新しい文字列インスタンスを作成し、...) を使用します。

これはコンパイルされるべきではありません。

私はあなたが何を意味すると思います:

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

ここで、customerNm は、以前に一度割り当てられた文字列です。

于 2009-09-01T17:29:36.490 に答える
2

ご質問の内容とは異なりますが、コードが文法規則に違反しているようです。

名前が「s」で終わるという理由だけで、複数名詞のように扱われるべきではありません。たとえば、ジェームズが犬を飼っている場合、それはジェームズの犬ではなく、ジェームズの犬です。ただし、マイクという名前の 2 人の人生のパートナーが犬を飼っている場合、それは両方ともマイクの犬です。

例外: 複数音節の名前が「ess」または「ezz」の音で終わる場合は、's' で終わる複数形のように扱うことができます。Linus が犬を飼っている場合、Linus の犬でもかまいませんが、Linus の犬でもかまいません。

于 2009-09-01T18:31:20.703 に答える
1
// Enforce English grammar
string customerNm = customerNm.EndsWith("s") ? customerNm+= "'" : customerNm+="'s"; 
于 2009-09-01T15:21:11.740 に答える
1

//Apply genitive case
string customerNm = customerNm.EndsWith("s") ? customerNm+= "'" : customerNm+="'s";
于 2009-09-01T15:45:09.103 に答える