public static bool CheckTextByteLength(string text, int maxLength) {
bool retFlag = true;
Encoding sjis = Encoding.GetEncoding("Shift_JIS");
if (maxLength < sjis.GetByteCount(text)) {
retFlag = false;
}
return retFlag;
}
実際に現在の現場で使われているよくあるメソッドです。
たった数行のソースなれど、私は非常に読みづらいソースだと思います。
bool 値だからたった二種類の値しか返さないのですが、ぱっとみてどのときに true かわかりにくくないですか?
しかもこのメソッドは、特定の条件ならば false を返すという意味に重きがおかれています。
bool を返すメソッドにおいて、利用者が一番知りたいのは true になる条件ではないでしょうか?
public static bool CheckTextByteLength(string text, int maxLength) {
Encoding sjis = Encoding.GetEncoding("Shift_JIS");
return sjis.GetByteCount(text) <= maxLength;
}
この場合、これで十分なわけです。
bool 値を返すメソッドの場合、「○○のとき true, そうじゃないとき false」というような記述よりも、「○○かどうかを返す」という記述をしたほうがよりわかりやすいと思います。
もちろん、そんな単純なロジックのメソッドばかりじゃないでしょう。
そんな場合でも、同一メソッド内で if 文などで使用しない限り、変数に格納するのではなく return true; と直接書いて欲しい。
メソッドが長くなればなるほど、「結局どんなときに true になんのよ?」ってのが把握しづらくなる。
ま、私のどたまが悪いからといわれたらどうしようもないですが。