Nie wiem jak wy ale ja kocham debugować kod. Odkrywanie, gdzie programista (w wielu wypadkach ja sam!) popełnił (świadomie/nieświadomie) błąd wprawia mnie w stan euforii pewnie jak morfina uzależnionego :).

Visual Studio (dla mnie) jest dość bliskie idealnego narzędzia do tego celu, ale do szczęścia brakowało mu kilku rzeczy. Jedną z nich był podgląd zwracanej wartości z funkcji. W poprzedniej wersji mogliśmy tę wartość uzyskać, ale trzeba było się troszkę “namęczyć”.

VS 2013 to the rescue

Najnowsze IDE ułatwia nam ten proces. Mając poniższy kod:
class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine(Function());
    }

    private static double Function()
    {
        return Math.Acos(0.1212);
    }
}
i chcąc dowiedzieć się o wynik funkcji arccos musieliśmy albo przekopiować całe wyrażenie do okna Watch albo tworzyć zmienną pomocniczą ble, podstawiać do niej wyliczaną wartość i dopiero ją zwracać. Utrapienie 🙂

W VS 2013 jeśli po przejściu linii z return (czyli będąc na }) zerkniemy na okienko Autos naszym oczom ukaże się następujący obrazek.

Banalny przykład, ale czasem się przydaje. Oczywiście na tym możliwości się nie kończą. Trochę bardziej skomplikowany przykład:

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine(Function());
    }

    static double Function()
    {
        return Function2(Function1);
    }

    private static double Function1()
    {
        return Math.Acos(0.1212);
    }

    private static double Function2(Func actionToExecute)
    {
        return Math.Cos(actionToExecute());
    }
}

Zaznaczona funkcja przyjmuje jako argument funkcję zwracającą double i zwraca wynik działania na tym co zwróci wcześniej wspomniana funkcja przekazana jako argument. Gdy w tej metodzie zatrzymamy się na znaku } naszym oczom ukaże się co poniżej:

Dostaliśmy więc nie tylko to co zwróci funkcja Function2, ale także jaki wynik zwraca przekazana do nas Function1. Sweet 🙂


dotnetomaniak.plNajciekawsze artykuły o .NET