Michells Mesterværk

En nyttig extension method

by Administrator 10. September 2009 13:16

Jeg finder mig selv bruge meget af den samme plumbing kode for at tjekke for null og 0 værdier når jeg bruger QueryStrings. Det er mildest talt dumt og koden til det er så simpel, at det bare skal ligge i en extenstion method.

public static class RequestExtensions {
    public static Int32 IntQueryString( this HttpRequestBase request, String queryKeyString ) {
        if ( String.IsNullOrEmpty( queryKeyString ) ) {
            throw new ArgumentNullException( "{0} querystring findes ikke i request objektet",
queryKeyString ); } queryKeyString = request.QueryString[ queryKeyString ]; Int32 queryStringInt; if ( Int32.TryParse( queryKeyString, out queryStringInt ) ) { return queryStringInt; } return 0; } }

Nu kan jeg lave mine QueryStrings om til typen Int32 uden så meget bøvl

Int32 intId = Request.IntQueryString( "id" );

Tags:

Comments

9/10/2009 2:21:56 PM #

Lars Hundertwasser

en lille "upgrade":

at defaulte til 0 er måske ikke altid ønskværdigt, det kunne fx. løses med:

public static int? IntQueryString( this HttpRequestBase request, String queryKeyString ) {
....
if ( Int32.TryParse( queryKeyString, out queryStringInt ) ) {
            return queryStringInt;
        }

        return null;
}

og bruge den med

Int32 intId = Request.IntQueryString( "id" ) ?? 0;

eller

Int32 intId = Request.IntQueryString( "id" ) ?? 2;

hvis det nu er 2 som skal være default

Lars Hundertwasser Denmark

9/11/2009 3:34:14 PM #

Thomas Kølle

Det er også interessant at man kan flytte IsNullOrEmpty ind som en extensionmetode til string;

string s = null;
if (s.IsNullOrEmpty()) {...}

Der kommer aldrig en null exception fordi det stadig er en statisk metode.

Thomas Kølle Denmark

9/14/2009 6:53:46 AM #

Brian

Gode kommentarer. Jeg er helt enig.

For at uddybe Thomas' kommentar lidt, så kunne det godt se ud som om, at du kun har lavet din metode for Int32. Havde du lavet den for andre typer, havde du forhåbentlig ikke gentaget null-koden i alle varianterne. Som den står nu, er der en vis risiko for, at du kommer til at bryde DRY.

I småtingsafdelingen: Burde metoden ikke hedde GetIntFromQueryString eller lignende? Det nuværende navn er lidt indforstået, synes jeg. Konventionen for ArgumentNullException er blot at give navnet på den variabel, der ikke må være null. Det giver en brugbar besked.

Brian Denmark

10/22/2009 6:59:45 AM #

faxless payday loans

That is the blog which I was waiting for! Thanks ----

faxless payday loans United Kingdom

10/28/2009 6:14:56 AM #

Payday Loans No Teletrack

I have been waiting for the post you made here...............Thank you so much for this.

Payday Loans No Teletrack United States

10/29/2009 7:49:03 AM #

Sameday Payday Loans

Here is the golden opportunity for being successful hereafter.

Sameday Payday Loans United States

11/7/2009 8:28:45 AM #

Cheap Payday Loans

Well done, amazing, you have given here useful information…………..thanks.

Cheap Payday Loans United Kingdom

11/10/2009 9:05:41 AM #

Contract Mobile Phones deals

It is one of the most likings and attractive blog……………thanks a lot for sharing your nice thought.

Contract Mobile Phones deals United Kingdom

11/10/2009 10:06:41 AM #

taj mahal tours india

I liked this post a lot and now I have become crazy about this. Thanks for this

taj mahal tours india United States

2/14/2010 1:35:16 PM #

اخبار

Thank you very much for the possibility to have a look into the office. Nice boy, he has got the talent to explain.

اخبار Egypt

3/9/2010 11:59:54 PM #

WoW Mobile

Do you know which cell phone services allow tethering?

WoW Mobile United States

3/14/2010 11:18:42 PM #

ssk sorgulama

This is a really good read for me, Must admit that you are one of the best bloggers I ever saw.Thanks for posting this informative article.

ssk sorgulama United States

3/17/2010 11:24:41 AM #

arac sorgulama

I admire the valuable information you offer in your articles. I will bookmark your blog and have my children check up here often. I am quite sure they will learn lots of new stuff here than anybody else!

arac sorgulama United States

3/20/2010 3:17:51 PM #

ehliyet

Excellent post.I want to thank you for this informative read, I really appreciate sharing this great post. Keep up your work.

ehliyet Denmark

Add comment


(Will show your Gravatar icon)

(De 3 specielle karaktere i det danske alfabet?)
  Country flag

biuquote
  • Comment
  • Preview
Loading



Powered by BlogEngine.NET 1.6.0.0
Theme by Mads Kristensen

Om Mr. Frost

Developer Evangelist i Microsoft Danmark.