日々の色々【備忘録】

日々の生活中とか、仕事とか疑問に思ったこととそれに対する考えをたまに書いていきます。主に技術系メインです。

【.net】URL作成クラスpart2【備忘録】

URL作成クラスをstaticで作成していましたが、使うためには呼び出しもとでKeyValuePairをいちいち作らなきゃいけないつくりになってました。

パラメータが多くなればなるほど処理が気持ち悪い形になってしまうと思うんですよね。

そこでUrlCreatorクラスを以下のように書き換えました。

 

public UrlCreator(string destination)

{

    this.url = Constants.ROOT + destination;

    this.parameters = new List<KeyValuePair<string,string>>();

}

public string CreateUrl()

{

    var url = this.url +

        *1;

    return this;

}

 

public string url{get;set;}

public List<KeyValuePair<string,string>> parameters{get;set}

 

こんな感じで書いておけば呼び出し側は

new UrlCreator("遷移先").AddParam("key","value").AddParam(...).CreateUrl();

みたいな書き方が出来て、処理を追うのが楽になりました。

 

一個前のやつだといちいちKeyValuePairのインスタンス作んなきゃいけないし、配列だともっとめんどくさいしね。

*1:this.parameters.Count != 0)

            ? "?" + string.Join("&", this.parameters.Select(parameter=> parameter.Key + "=" + HttpUtility.UrlEncode(parameter.Value)))

            : "");

    return url;

}

 

public UrlCreator AddParam(string key, string value)

{

    this.parameters.Add(new KeyValuePair<string,string>(key,value