コードSOD:ハイストラング ノート

コードSOD:ハイストラング

多くのプログラミング言語では、文字列がnullまたは空かどうかをチェックするための便利な関数が提供されています。C#にもそのような関数がありますが、開発者は依然としてそれを誤って実装する可能性があります。JasonのStringValid関数は機能的ですが、不要な条件分岐を使用しているため非効率的です。より良いアプローチは、ブール式を直接返すか、組み込み機能を使用することです。Derekのアプローチは、nullチェックとしては逆で直感的ではない"".Equals(Port)というワンライナーを使用しています。このパターンはコードベース全体に散在しており、コードスニペットの使用が示唆されています。逆の"".Equals構文は、Pythonのような言語の影響を受けている可能性があります。MalfistのJavaの例では、checkNullという誤解を招く名前の関数が含まれています。この関数は実際には、入力がnullの場合にデフォルトの文字列を返すcoalesce関数です。重大な欠陥は、nullでない入力文字列はトリムするが、デフォルトの文字列はトリムしないことです。さらに、デフォルトの文字列自体がnullかどうかを検証しないため、さらなるnull参照例外につながる可能性があります。著者は文字列処理の複雑さに不満を表明し、それらの廃止を提案しています。