2011-07-31 12 views
7

Mam Array<Person> myArray i używam następujący kodArray.Find with Delegate. Co zwraca, jeśli nie zostanie znaleziony?

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

Ten article w MSDN stwierdza:

Return Value

Typ: T

Pierwszym elementem, który pasuje warunki określone przez określony predykat , jeśli został znaleziony; w przeciwnym razie wartość domyślna dla typu T.

Gdybym miał Array<int>, domyślną wartością byłoby zero. Ale w moim przypadku używam klasy. Powiedzmy: Array<Person>.

Jakie byłyby ustawienia domyślne dla mojej klasy i jak mogę obsłużyć przypadek nie znaleziony za pomocą osoby upoważnionej?

Odpowiedz

10

Ustawienie domyślne dla dowolnego typu odniesienia (klasa, interfejs, delegat) jest odwołaniem zerowym. Wartością domyślną dla dowolnego typu wartości jest wartość, w której wszystkie pola tego typu są wartością domyślną dla tego pola - kończy się to wynikiem 0, \0, fałszem itd.

Więcej informacji na ten temat można znaleźć w artykule MSDN.

4

Zakładając, że osoba jest typem odniesienia, domyślną wartością byłoby zero.

Dlatego wywołanie funkcji Array.Find() zwróci wartość null, gdy warunek nie zostanie spełniony.

Powiązane problemy