2011-06-26 12 views
0

以下のコードを短くすることはできますか?おかげHttpCookieを短くする

HttpCookie myCookie = new HttpCookie("UserID", "JLovus"); 
myCookie.Expires = DateTime.Now.AddMinutes(30); 
Response.Cookies.Add(myCookie); 
+2

これは質問です。なぜですか?あなたはどのようなシナリオを持っているので、このコードを煩わしいものにしていますか(またはそれは好奇心だけで尋ねられる質問ですか)? – Cameron

+0

3行が長すぎますか? – ChrisBint

+1

'AddMinutes(30);'を 'AddMinutes(29);'に変更しました – RobertPitt

答えて

0
Response.Cookies.Add(new HttpCookie("UserID", "JLovus") 
{ 
    Expires = DateTime.Now.AddMinutes(30) 
}); 
次のようにして、1以下で読み取り可能なラインでそれを行うことができ
0
Response.Cookies.Add(new HttpCookie("UserID", "JLovus") 
{ 
    Expires = DateTime.Now.AddMinutes(30) 
}); 
+0

まだ3行です:/ – RobertPitt

+0

OPのコードよりもまだ短いです! :D – ChrisBint

0

Response.Cookies.Add(new HttpCookie("UserID", "JLovus") {Expires = DateTime.Now.AddMinutes(30)});

をあなたはは、コードの以下の行で何かを行うことができますすることは意味しないからといってあなたはでなければなりません。そうです。元のコードは簡潔で読みやすいものでした。私(そして他の何人か)が投稿したものは、一目で分かりにくいです。

0

はい、何がポイントですか?

Response.Cookies.Add(new HttpCookie("UserID", "JLovus") 
    {Expires = DateTime.Now.AddMinutes(30)}); 
0

あなたは関数の中に置くことができます。

public HttpCookie AddHttpCookie(String key, String value, int timeOut) 
{ 
    HttpCookie httpCookie = new HttpCookie(key, value); 
    httpCookie.Expires = DateTime.Now.AddMinutes(timeOut); 
    Response.Cookies.Add(httpCookie); 
    return httpCookie; 
} 

そして、このようにそれを呼び出す:

HttpCookie myCookie = AddHttpCookie("UserID", "JLovus", 30); 

それとも:

AddHttpCookie("UserID", "JLovus", 30); 
+0

ここに投票の説明をありがとうと思います... –

+0

それもどちらか分かりません。私はこれが有効な答えだと思う。しかし、拡張メソッドとして再利用することはできません。 –

+0

@ssg:高尚、ありがとう。 –

2

これは本当にではありません多くのコード。あなたが何度もそれをやり直さなければならないと、迷惑になることが想像できます。その場合は、関数を使用してそれを行うことができます。たとえば:

public static class ResponseExtensions 
{ 
    public static void AddCookie(this HttpResponse response, string key, string value, 
     int minutesToLive = 30) 
    { 
     var myCookie = new HttpCookie(key, value); 
     myCookie.Expires = DateTime.Now.AddMinutes(minutesToLive); 
     response.Cookies.Add(myCookie); 
    } 
} 

あなたのコードは次のようになります。

Response.AddCookie("UserID", "JLovus"); 
0

あなたはこのコードをたくさん使用している場合、あなたは機能にそれを置くことを検討する必要があります。

protected void CreateUserIDCookie(string userID, int timeUntilExpires) 
{ 
    HttpCookie myCookie = new HttpCookie("UserID", userID); 
    myCookie.Expires = DateTime.Now.AddMinutes(timeUntilExpires); 
    Response.Cookies.Add(myCookie); 
} 

その後にあなたのコードはこれだけです:

this.CreateUserIDCookie("JLovus", 30); 

他の人が示唆しているように、あなたはそれを1行に減らすことができますが、言い換えれば読みにくく、3行の読み込み可能なコードを読むことは難しいです。コードはすでに読みにくいです。

+0

なぜパラメータを渡していて、使用していないのですか? – ChrisBint

+0

私は質問からコードをコピーして、リテラルをパラメータ名に変更するのを忘れてしまったためです。 D'oh! –

+0

haha​​。そのために-1にする必要があります! – ChrisBint