0

以下の 2 つの方法の中で、より良い方法はどれですか? 可能であれば、他のより良いものを提案してください。

最初の方法:

if (!string.IsNullOrEmpty(firstName) && !string.IsNullOrEmpty(lastName))
{
    sUri = sUri + "&fn=" + firstName + "&ln=" + lastName;
}
else if (!string.IsNullOrEmpty(firstName) && string.IsNullOrEmpty(lastName))
{
    sUri = sUri + "&fn=" + firstName + "&ln= ";
}
if (string.IsNullOrEmpty(firstName) && !string.IsNullOrEmpty(lastName))
{
    sUri = sUri + "&fn= &ln=" + lastName;
}
if (string.IsNullOrEmpty(firstName) && string.IsNullOrEmpty(lastName))
{
    sUri = sUri + "&fn= &ln= ";
}

第二の方法:

sUri = sUri + String.Format("&fn={0}&ln={1}", 
    (!string.IsNullOrEmpty(firstName) ? firstName : " "), 
    (!string.IsNullOrEmpty(lastName) ? lastName : " "));
4

4 に答える 4

10

入力されているかどうかに関係なく、クエリ文字列パラメーターを追加する場合は、単純にこれを行うことができます

sUri = string.format("{0}&fn={1}&ln={2}", sUri, firstName, lastName);

(URI の場合はスペースを追加する必要がないため、代わりにスペースを追加しないことに注意してください)

于 2013-09-19T19:37:53.880 に答える
6

私は明示的な変数に行きます:

var sanitizedFirstName = string.IsNullOrEmpty(firstName) ? " " : firstName;
var sanitizedLastName = string.IsNullOrEmpty(lastName) ? " " : lastName;

sUri = string.Format("{0}&fn={1}&ln={2}", sUri, sanitizedFirstName, sanitizedLastName);

読むためのクリーナー(imho)

于 2013-09-19T19:37:37.787 に答える
1

これで同じ結果が得られると思います:

sUri = sUri + String.Format("&fn={0}&ln={1}", firstName ?? " ", lastName ?? " ");
于 2013-09-19T19:40:34.593 に答える
1

本当にスペースが必要な場合は、null 合体演算子を使用してみませんか?

sUri = String.Format("{0}&fn={1}&ln={2}", sUri, firstName ?? " ", lastName ?? " ");
于 2013-09-19T19:49:10.540 に答える