【问题标题】:Array.Find with Delegate. What does it return if not found?Array.Find 与委托。如果没有找到它会返回什么?
【发布时间】:2011-10-17 01:51:00
【问题描述】:

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

myArray.Find(o => o.name.Equals("John"));

Msdn 中的这个article 声明:

返回值

类型:T

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

如果我有一个Array<int>,默认值将为零。 但是,就我而言,我正在使用一个类。假设Array<Person>

我的班级的默认设置是什么?如何使用委托处理未找到的情况?

【问题讨论】:

    标签: c# arrays delegates find


    【解决方案1】:

    任何引用类型(类、接口、委托)的默认值都是空引用。任何值类型的默认值都是该类型的所有字段都是该字段的默认值的值 - 所以你最终会得到 0、\0、false 等。

    更多详情请见MSDN

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2011-02-04
        • 1970-01-01
        • 2011-03-01
        • 2010-12-15
        • 1970-01-01
        • 2014-04-10
        • 1970-01-01
        • 1970-01-01
        • 2018-11-20
        相关资源
        最近更新 更多