セッション変数でString.IsNullOrEmptyを誤って使用した事件の後、同僚の同僚がString.IsNullOrEmptyの使用を受け入れないようになりました。いくつかの研究の後、明らかにMSDN(link)にIsNullOrEmptyのために記載されたバグ(下のメモを読む)があります:2006年4月4日のようC#String.IsNullOrEmpty:良いか悪いですか?
、それは作る(JITで可能)バグ あり最適化が の場合、この メソッドは失敗します。 C#とVBの両方に影響することが知られています。
詳細については、こちら(link)をご覧ください。マイクロソフトでは、このバグはOrcasの後に「おそらく」修正されていますが、残念ながら私の雇用主はまだVS2005を使用しています。しかし、もし問題が2008年に修正されれば、そうなるでしょう。それは私とちょうどいいです。
私にIsNullOrEmptyと私のコードの私の同僚の拒否は、盲目無知(IMO)ですがはないセッション変数と誤用以外にそれを使用するために、なぜ彼は確かに私に言うことはできません。私はIsNullOrEmptyをコード全体に使用しましたが、何も問題はありません。個人的には、1つのステートメントで2つのことを行うだけでなく、読みやすくすることができます。
私は主題に関する意見を求めて、賛否両論のあるサイトを見つけました。ここで私はこのことについて読んだのサイトのいくつかである:
https://blog.rthand.com/post/2006/06/22/1063.aspx
http://www.omegacoder.com/?p=105
一つのサイト(http://dotnetperls.com/isnullorempty)かなりよくする方法(私見)まとめ:ここで
を我々文字列型のIsNullOrEmpty メソッドを見ています。 は、 という効率的な方法で、 文字列は保存または使用することができます。ただし、パフォーマンスのために を入力すると、 の手動ヌルチェックを使用する方が良い場合があります。空の文字列 も他の方法でテストすることができます。 私の研究では、 の長さが最も速いことを示しています。
バグフィックスが所定の位置にあると仮定すると、(と正しく動作)/ 2010 VS2008の/ etc。で、VS2005とし、超えString.IsNullOrEmptyを使用する理由ないはありますか?私はこのような馬鹿げた小さな方法の上で、これはちょっと残忍すぎるように思えるかもしれませんが、何かが起こっているかどうか、誰かが別の説明をしているかどうかを知りたいと思います。
ありがとうございます。サービスパックがまだインストールされていない場合は、サービスパックを入手してください。私はジャンプする必要があるだろうが、どちらの方法でも、私たちのWebサーバー上の最新のサービスパックを実行する必要がありますすべてのフープのかわからない。ありがとう! – osij2is