2009-09-01 7 views
0

正しいコメントコードを使用すると、このコード行をコメントだろうか興味があるだけ

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

あなたのアプリケーションが、英語以外の言語にローカライズされることは決してないことをご理解いただきたいと思います... –

+0

これは本当かもしれません。しかし、クライアントは今気にしません – bizl

答えて

4

独自の機能にそれを入れて、適切な機能に名前を付けます。それは十分にはっきりしているはずです。 (そして、あなたも、より簡単にそれをテストすることができます!)

string makePossessive(string customerName) { 
    ... 
} 
+0

私はこのアプローチをもう一度使います。今、ユニットテスト可能です。 – Amy

+0

私は1行の機能のファンですが、私は推論を参照してください。ありがとう – bizl

+0

私はあなたに同意します、1行の関数が奇妙であることができます。しかし、条件付き演算子の方が読みにくくなる可能性があるため、条件演算子を使用しない方もいます。ステートメントをif/elseに展開した場合、それはもはや1ライナーではありません。 –

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

リファクタリングのおかげで。 neat – bizl

3

私は必ずしもすべてで、それをコメントしませんでした。それはそのままの状態ではっきりしています。

コメントする場合はなぜあなたはそれを行う方法を説明する必要があります。

例えば:

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

パブリックAPI以外のすべてのコメントは、「なぜ」の質問に答える必要があります。あなたがしたことを見つけるためにコードを読むことができますが、なぜあなたがこのようにしたのか、あるいはそれを全くしなかったのかを知りたいのです。 –

1

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

私は「働いていない」と、それをコメントします。それに割り当てる前に 'customerNm'にアクセスするからです。

( "customerNm + = ..."を使用します。つまり、古いインスタンス([未割り当て]と...)の連結として新しい文字列インスタンスを作成します)。

これはコンパイルされるべきではありません。 customerNmはすでに前に一度に割り当てられた文字列である

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

は、私が何を意味することだと思います。

2

ご質問はありませんが、コードがgrammar rulesに違反しているようです。

名前は複数の名詞のように扱われるべきではなく、「s」で終わります。例えば、ジェームズに犬がいたら、それはジェームスの犬ではなく、ジェームスの犬である。しかし、Mikeという名前の2つのライフパートナーが犬を飼っている場合は、両方ともMikesの犬です。

例外:複数の音節名が「ess」または「ezz」という音で終わる場合、「s」で終わる複数のように扱うことができます。 Linusに犬がいれば、Linusの犬かもしれませんが、私はLinusのも受け入れ可能だと信じています。

+0

興味深い。リンクありがとう – bizl

+0

LOL!私は貧弱な文法であなたの文法を修正しました!最後の段落は「an」ではなく「as」で、「then」ではなく「than」です。私はそれを残すつもりです。皮肉のために。 –

関連する問題