2012-04-25 4 views
3

これは本当に馬鹿げた小さなことですが、私は肛門を保持しており、R#(6.1)が何かを強調しているときには、一般にそれを "修正"したいと考えています。私はMVC4プロジェクトに取り組んでおり、あるコントローラから別のコントローラにID値を渡しています。私はまだMVCの初心者ですが、これを行うにはより良い方法があります。いずれにせよ、私はクッキーの存在をチェックし、それは次のように値です取得しています:Nitpicky ReSharperの振る舞い、Request.Cookiesでのnull参照

var idCookieString = string.Empty; 
if(Request.Cookies.AllKeys.Contains("id")) 
{ 
    idCookieString = Request.Cookies["id"].Value; 
} 

迷惑がR#が、私は「にもかかわらず、可能null参照例外としてRequest.Cookies["id"]を呼んでいるということですCookieがifステートメントに存在するかどうかを確認する。それを取得しようとする前にクッキーが存在するかどうかを確認する良い方法はありますか、それともR#無視するだけですか?

答えて

2

R.では、Request.Cookies.AllKeys.Contains( "id")は実際にはRequest.Cookies ["id"]。Valueが何かを返すかどうかを確認するためのチェックではありません。そうです、あなたは#は無視Rを追加したり、無用のコードの余分な行を追加するかがあります。

if (Request.Cookies["id"] != null) 

を他に方法はありません私の知る限り。

+0

Eesh、それはちょっと吸う。まず、クッキーそのものを取得してから、値を代入する前にクッキーでヌルをチェックすると、 'var idCookieString = idCookie == null? string.Empty:idCookie.Value; '。 'Contains'がヌル参照チェックを処理していることを知らないR#についてあなたは正しいです。ありがとう! –

+0

私の無知を許しますが、あなたはヌル値を持つキーを持つことができませんでしたか? Request.Cookies ["id"] = null;それはまだcontainsテスト(Idキーがあります)をパスしますが、それはヌル値になりますか? – Tommy