在C#中进行字符串操作之前的最佳实践

时间:2017-04-05 20:43:42

标签: c# string

在C#中进行字符串操作之前,是否有建议的最佳实践来检查NULL和空(其他任何东西?)?具体来说,我需要在字符串上调用Replace和Trim,但发现在NULL字符串上执行此操作会抛出。那么有比以下更好的格式吗?

tmp =(tmp == null)? null:tmp.Replace(" TOKEN","")。修剪();

1 个答案:

答案 0 :(得分:8)

在.NET 4.0或更高版本中使用String.IsNullOrWhitespace,或在.NET 3.x中使用String.IsNullOrEmpty

String temp = ...
if( !String.IsNullOrWhitespace( temp ) ) {
    temp = temp.Replace("TOKEN", "").Trim();
}

C#6.0添加了?.运算符,它是" null-safe",它只返回null并跳过导航表达式的其余部分:

String temp = ...
temp = temp?.Replace("TOKEN", "").Trim();

正如我在评论中所说,如果您使用ADO.NET(DataSetDataTableIDataReader等)访问数据库,那么您应该检查{ {1}}用于表示SQL DBNull值,它们与C#中的NULL不同:

null

或者:

using( IDataReader rdr = command.ExecuteReader() ) {

    while( rdr.Read() ) {

        String value = rdr.IsDBNull( someColumnIndex ) ? null : rdr.GetString( someColumnIndex );
    }
}