-1

ここで選択肢があります。2つの意見:

1 つは、約 1 ページの長さの XML ファイルを 2 回読み取り、特定の属性値を見つけて文字列に割り当てることができるかどうかを調べることです。最初は、属性が存在し、null でないかどうかを調べることです。値を読み取って割り当てる 2 回目。

If([xmlAttribute]!= null){
  string = xmlAttribute;
}

2 つは、同じ XML ファイルを 1 回読み取り、最初に値を見つけようとせずに直接値を割り当てようとすることです。失敗した場合、例外がスローされ、catch ブロックは文字列を null に割り当てます。

try{
  string = [xmlAttribute];
}catch(Exception ex){
  string = null;
}

どちらの方法が速いですか?または、より良いアイデアはありますか?ありがとう。

4

3 に答える 3

4

例外の作成には多くのオーバーヘッドがあります。メソッド、スタック トレース、および根本的なエラーに関する詳細を収集するには、非常に時間がかかります。予想されるプログラム ロジックの一部として例外を使用するのは、不適切なコーディングです。

可能な限り例外をスローせずにデータをチェックする方法を探してください。

于 2013-08-05T17:48:40.457 に答える
0

Linq to XML を使用しているとします。

var element = xml.Element("Name");
var attribute = element == null ? null : element.Attribute("first");
var value = attribute == null ? null : attribute.Value;

通常、このプロセスを容易にするためにいくつかの拡張メソッドを追加します。たとえば、次のようになります。

var value = xml.Element("Name").OptionalAttribute("first").ValueOrDefault();

拡張メソッドの名前は自由です。

于 2013-08-05T17:52:54.377 に答える