创建具有不同基础类型的Nullable对象数组?

Ben*_*ter 3 c#

我有许多不同类型的(例如可空对象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)

ken*_*n2k 5

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引用类型。