3

I'm building an XML Deserializer for a project and I run across this type of code situation fairly often:

var myVariable = ParseNDecimal(xml.Element("myElement")) == null ? 
                 0 : ParseNDecimal(xml.Element("myElement")).Value;

Is there a better way to write this statement?

EDIT : Perhaps I should have clarified my example as I do have a helper method to parse the string into a decimal.

4

3 に答える 3

1

?? を使用できます。これをもう少しきれいに書くための演算子ですが、そうすべきかどうかはわかりません...

Element()その名前の子要素がないという null を返すので、ここで ?? を使用できます。デフォルト要素にスライドします。(decimal)キャストを呼び出す前に、これを行う必要があります。

var myVariable 
    = (decimal)(xml.Element("myElement") ?? new XElement("myElement", 0));

私が言ったように、これは機能しますが、これを行うべきかどうかはわかりません. YMMV。

于 2009-02-08T23:01:59.993 に答える