使用委托进行 Array.Find。如果没有找到它会返回什么?
我有一个Array
并且我正在使用以下代码
myArray.Find(o => o.name.Equals("John"));
这篇文章 MSDN 指出:
返回值
类型:T
第一个符合条件的元素 指定谓词(如果找到);否则,为类型 T 的默认值。
如果我有一个 ArrayArray
。
我的类的默认值是什么以及如何使用委托处理未找到的情况?
I have an Array<Person> myArray
and I am using the following code
myArray.Find(o => o.name.Equals("John"));
This article in Msdn states:
Return Value
Type: T
The first element that matches the conditions defined by the
specified predicate, if found; otherwise, the default value for type T.
If I had an Array<int>
the default value would be zero.
But, in my case I am using a class. Let's say Array<Person>
.
What would be the default for my class and how can I handle the not found case using a delegate?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
任何引用类型(类、接口、委托)的默认值都是空引用。任何值类型的默认值都是该类型的所有字段都是该字段的默认值 - 因此最终会得到 0、
\0
、false 等。请参阅 MSDN 了解更多详细信息。
The default for any reference type (class, interface, delegate) is a null reference. The default for any value type is a value where all the fields of the type are the default value for that field - so you end up with 0,
\0
, false etc.See MSDN for more details.
假设 Person 是引用类型,则它的默认值为 null。
因此,当条件不满足时,对 Array.Find() 的调用将返回 null。
Assuming Person is a reference type, the default value for it would be null.
Therefore the call to Array.Find() would return null when the condition wasn't satisfied.