int?版本可用于String.IsNullOrWhiteSpace
问题描述:
我们的应用程序需要int?
变量。我经常检查两个以确保不为零而不是0,并且它确实变得冗长。int?版本可用于String.IsNullOrWhiteSpace
是否有int?
的开箱即用的版本的String.IsNullOrWhiteSpace()
或String.IsNullOrEmpty()
也许这需要一个扩展方法?
如果甚至有人或当某人做出一个,这样的事情会认为是不好的做法?
答
我不这么认为,但它很容易编写自己:
[Pure]
public static bool IsNullOrDefault<T>(this T? pValue)
where T : struct {
return pValue == null || pValue.Value.Equals(default(T));
// or as suggested in comments (tested)
return pValue == null || EqualityComparer<T?>.Default.Equals(pValue, default(T));
}
+1
作为一个方面说明,考虑使用'EqualityComparer
你可以扩展它,但我只是名字好听,HasNonDefaultValue –
甚至'(X?0) == 0' –
这不被认为是一个邪恶的死亡事件?我觉得任何时候我建议我在这里扩展一些扩展。 – markokstate