Array.Find with Delegate.如果找不到它会返回什么?

Ody*_*dys 8 c# arrays delegates find

我有一个Array<Person> myArray,我使用以下代码

myArray.Find(o => o.name.Equals("John"));
Run Code Online (Sandbox Code Playgroud)

这篇文章在Msdn中说:

回报价值

类型:T

匹配指定谓词定义的条件的第一个元素(如果找到); 否则,类型T的默认值.

如果我有一个Array<int>默认值将为零.但是,就我而言,我正在上课.让我们说吧Array<Person>.

什么是我的类的默认值,如何使用委托处理未找到的案例?

Jon*_*eet 13

任何引用类型(类,接口,委托)的默认值都是空引用.任何值类型的默认值都是一个值,其中该类型的所有字段都是该字段的默认值 - 因此您最终得到0 \0,false等.

有关详细信息,请参阅MSDN.


tom*_*ing 6

假设 Person 是一个引用类型,它的默认值为 null。

因此,当条件不满足时,对 Array.Find() 的调用将返回 null。