0

これらの 2 行と、部分文字列でルートを切り取る理由が理解できません。

root=AppDomain.CurrentDomain.BaseDirectory;
C.FileName = root.Substring(0, root.Length - 10) + "etat_selection_formula.rpt";
4

3 に答える 3

1

ファイル パスの操作には、文字列を直接操作するのではなく、System.IO.Path クラスを使用することを強く検討する必要があります。UNC パスのセマンティクスを認識しており、元の (明らかに近視眼的な) 実装に縛られることはありません。パスの最初の部分が 10 文字に満たない場合はどうなりますか? 誰かがフォルダを移動または名前変更しただけで、アプリケーション全体が壊れます。

MSDN ドキュメント (使用例を含む): http://msdn.microsoft.com/en-us/library/system.io.path.aspx

于 2012-06-18T11:56:51.507 に答える
0

通常は行う必要はありません。

誰かがそれを使用して、別のレポート パスまたはページ名を置き換えています。

私の意見では、これは悪いコードであり、必要に応じてベース パスを定数に格納する必要があります。そうすれば、はるかに読みやすくなります。

于 2012-06-18T11:50:58.820 に答える
0
root=AppDomain.CurrentDomain.BaseDirectory; 
C.FileName = root.Substring(0, root.Length - 10) + "etat_selection_formula.rpt";

最初の行は、アプリが実行されているディレクトリを取得するだけです。2 行目では、そこから最後の 10 文字を削除し、レポートの名前 ("etat_...") を追加します。

なぜあなたがこれを行うのか...あなたが知らないのであれば、私もわかりません。最良の推測: 1 つのディレクトリを (固定パスで) 取得し、標準レポートを追加します。

もしそうなら:悪い習慣 - あなたはこれを再考する必要があります.

于 2012-06-18T11:51:12.520 に答える