Z okazji powstania kompilatora Roslyn w Visual Studio, w końcu dotarła możliwość użycia wyrażeń lamba i metod Linq, w trakcie procesu debugowania kodu.
Do tej pory nie można było tego zrobić.
Do pokazania tej nowej funkcjonalności napisałem następujący kod.
string[] words = new string[] { "Moto Myszy z Marsa",
"Wojownicze żółwie Ninja", "Rekiny" ,"Jumanji" ,"M6",
"Batman", "Superman","MIB","The Mask","Godzilla"};
var choseWords = words.Where(k => k.Length < 7);
Immediate Window stał się teraz znacznie potężniejszym narzędziem. Mogę na przykład złapać dwa pierwsze elementy kolekcji bądź je pominąć.
W oknie Watch mogę też dodać wyrażenia Lambda.
Obecnie jednak istnieją pewne ograniczenia.
Łatwo to zauważyć, gdy zastosujemy wyrażenia LINQ a w nich musisz zostać wykonajakaś metoda natywna. Przykładowo nie mogę skorzystać z indeksera w stringu by sprawdzić pierwszy jego znak.
Oczywiście z innymi metodami czy właściwościami nie ma problemów.
public class Woman
{
public int Age { get; set; }
public string Name { get; set; }
public int RealAge()
{
return (Age / 2) + 5;
}
}
List<Woman> ladies = new List<Woman>()
{
new Woman() { Age = 25, Name ="Wiktoria" },
new Woman() { Age = 24, Name ="Barbara" },
new Woman() { Age = 22, Name ="Gracia" },
new Woman() { Age = 26, Name ="Kamila" },
new Woman() { Age = 23, Name ="Dominika" },
new Woman() { Age = 32, Name ="Patrycja" },
};
Jest to duży krok naprzód. Zobaczymy czy ta funkcja będzie działała lepiej podczas premiery Visual Studio 2015.