我有许多不同类型的(例如可空对象DateTime?,Guid?),我要检查的值。
我想避免这样的代码:
return SomeGuid.HasValue || SomeBool.HasValue || SomeDateTime.HasValue
Run Code Online (Sandbox Code Playgroud)
但似乎无法创建的数组Nullable<object>。我希望做这样的事情:
return new Nullable<object>[] { SomeGuid, SomeBool, SomeDateTime }.Any(o => o.HasValue);
Run Code Online (Sandbox Code Playgroud)
object 根据定义可以为空。
因此,以下工作:
Guid? guid = null;
bool? boolean = null;
DateTime? date = DateTime.Now;
var test = new object[] { guid, boolean, date }.Any(o => o != null);
Run Code Online (Sandbox Code Playgroud)
待办事项Nullable<T>要求T是一个struct,即值类型(而不是引用类型)。object是引用类型。