Dsc*_*duc 75 .net c# string properties
这是场景......
if (entry.Properties["something"].Value != null)
attribs.something = entry.Properties["something"].Value.ToString();
Run Code Online (Sandbox Code Playgroud)
虽然有效且正常工作,但这看起来很难看.如果我在执行ToString()之前没有检查null,那么如果属性为null,则抛出异常.有没有更好的方法来处理这种情况?
非常感激!
Rex*_*x M 121
8年后更新(哇!)以涵盖c#6的空条件运算符:
var value = maybeNull?.ToString() ?? String.Empty;
Run Code Online (Sandbox Code Playgroud)
其他方法:
object defaultValue = "default";
attribs.something = (entry.Properties["something"].Value ?? defaultValue).ToString()
Run Code Online (Sandbox Code Playgroud)
我也使用了这个,这不是非常聪明但方便:
public static string ToSafeString(this object obj)
{
return (obj ?? string.Empty).ToString();
}
Run Code Online (Sandbox Code Playgroud)
Dal*_*gan 41
如果您的目标是.NET Framework 3.5,那么我认为最优雅的解决方案是扩展方法.
public static class ObjectExtensions
{
public static string NullSafeToString(this object obj)
{
return obj != null ? obj.ToString() : String.Empty;
}
}
Run Code Online (Sandbox Code Playgroud)
然后使用:
attribs.something = entry.Properties["something"].Value.NullSafeToString();
Run Code Online (Sandbox Code Playgroud)
小智 39
Convert.ToString(entry.Properties["something"].Value);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
77881 次 |
| 最近记录: |