Path
クラスのメンバーはPath.Combine
のようにクラスに属します。彼らは素晴らしい、きれいな、正しいコードにつながります。残念ながら、C++プリプロセッサのヘッダーパスを管理するようなものに使用すると、プロファイラで期待以上に多くのヘッダが表示されていることをすぐに認識できます。どうして?`System.IO.Path`を具体的にするべきですか?
例外:ArgumentExceptionが:パス1またはパス2
GetInvalidPathChars
で定義された無効な文字の一つ以上を含んでいます。
チェックがなくても、combineコマンドはO(n)です(文字列の内容をコピーする必要があるため)。しかし、これはGetInvalidPathChars
'〜40人のメンバーの存在を確認するよりもずっと安価です。
Path
クラスは、無効な文字を含まない文字列を含む不変型である必要があります。 string
(現在存在しています)で動作する静的メンバーと、Path
オブジェクトで動作するために追加された同一のセットを提供する必要があります。 .NET Frameworkでこの変更を作る:
- が破壊変更ではありません
- が大幅にいくつかのベスト・プラクティス・オペレーションのパフォーマンスを向上させ(密封されたコンクリートの型に静的クラスを変更すると、非破壊である)
意見ですか?