どうにもいらつく

お仕事で見ているコード。言語はC#

 

class Person
{
public string Address { get; set; }
public string Name { get; set; }
public int Age { get; set; }
public string Profession { get; set; }

public string GetCSV()
{
const string comma = ",";
string result;
result = Address + comma;
result += Name + comma;
result += Age.ToString() + comma;
result += Profession;
return result;
}
}

 

GetCSV()は自分自身の内容をCSV形式で吐き出すメソッド。

もちろんちゃんと動く。動くのだが読んでいてイラつく。

①最初の項目(Address)とそれ以外の項目でresultへの代入が違う(=,+=)

②最後の項目(Profession)とそれ以外の項目で末尾のcommaの有無が違う

③commaの登場回数が多い。constにしてるだけマシだが。

 

最初に書いた人、なんでこんなコードにしたんだろう?

 

 

<追記したんご>

↑のコードはVB6で書かれていたのをC#に移植したものらしいのだが、VB6のコードを確認したところ、

①各項目をCollectionにAdd

②Collectionを配列に変換

③Join()で連結

というまっとうな方法になっていた。

なんで後発言語のC#のほうがへんなコードになったんだろう?

 

<さらに追記>

こんなこと気にしててはいけないのだろうか。だめなのだろうか?だめといわれても治らないでしょうが。