Czytałem o nowych funkcjach zmiennych wyjściowych w C # 7 tutaj . Mam dwa pytania:
To mówi
Zezwalamy również na „discards” jako parametry out, w postaci a
_
, aby pozwolić Ci zignorować parametry, które Cię nie interesują:p.GetCoordinates(out var x, out _); // I only care about x
P: Wydaje mi się, że to tylko informacja, a nie nowa funkcja języka C # 7, ponieważ możemy to zrobić również w C # 7.0:
var _; if (Int.TryParse(str, out _)) ...
czy coś mi tu brakuje?
Mój kod wyświetla błąd, gdy robię to, co wspomniano na tym samym blogu:
~Person() => names.TryRemove(id, out *);
*
nie jest prawidłowym identyfikatorem. Myślę, że przeoczenie Madsa Torgersena?
out _
_
nie jest zmienną, nie deklarujesz jej i nie możesz jej używać z nazwy. Wint _
tym jest zmienna.