var item = "" + dr["someString"];
それともベストConvert.ToSting()または単に空の文字列と連結しますか?
var item = Convert.ToString(dr["somestring"]);
上記の例のパフォーマンスへの影響は何ですか?
var item = "" + dr["someString"];
それともベストConvert.ToSting()または単に空の文字列と連結しますか?
var item = Convert.ToString(dr["somestring"]);
上記の例のパフォーマンスへの影響は何ですか?
方法について:不要な連結、不要な仮想呼び出しを回避し、null参照のメソッドを呼び出すことのリスクを回避
var item = (string)dr["someString"] ?? "";
。この文脈ではdr
が何であるかは明らかではない。それは、データ・リーダー(IDataReader
など)である場合は、必要がある場合があります。
int index = dr.GetOrdinal("someString");
var item = dr.IsDBNull(index) ? "" : dr.GetString(index);
またはDataRow.IsNull
を含むDataTable
、何かの場合を。
dr["someString"].ValueOrEmpty()
でどうなりますか?
元の質問については、パフォーマンスは重要ではありません。私は、より良いパフォーマンスを得るために最適化できる他のいくつかの領域があることを約束します。
最も読みやすいコードを作成します。また、必要なことが証明されるまで最適化しないでください。
更新:
public static class StringExtensions
{
public static string ValueOrEmpty(this object obj)
{
return obj == null ? "" : obj.ToString();
}
}
問題がある場合は... –
はい、それとも最善の方法ですか? –
@マーク、 'dr'がDataRowの場合、dr [" someThing "]はnullではなくDBNullを返しますか? – zmbq
この例では、そのDataRow –
@もちろんですが、最初は 'DBNull'のファンではありませんが、' DataRow'のコンテキストでは 'dr.IsNull(... ) '。それは答えを変更しませんが、[いくつかの関連するノート](http://stackoverflow.com/questions/4958379/what-is-the-difference-between-null-and-system-dbnull-value/9632050#9632050あなたが興味をそそるかもしれない)。 –
@Leighを脇に置いて、質問に関連するすべてのコンテキストを含めることの重要性も示しています。この場合、**本当に重要です** '博士(dr) 'と定義されているので、質問でそれをボランティアすることは有益でしょう; p –