Rozważmy taki kod:
[*]
= breakpoint
public static void XD(int a)
[*] {
if (a == 2021)
{
Console.WriteLine("a");
}
else
{
Console.WriteLine("b");
}
}
Będąc na breakpoincie zmieniamy "2021" na "2020",
następnie do 1 brancha ifa dodajemy Console.WriteLine("a2");
,
a do drugiego dodajemy Console.WriteLine("b2");
puszczamy kod i działa, ale nie każda taka zmiana przechodzi,
niektóre zmiany raz działają, a raz nie (tak mi się wydaje) - od czego to zależy?
Ostatnio nawet udało mi się takie coś:
public void CallBazka(string a, string b)
{
var sql = "SELECT * FRON XD WHERE a = {a} AND b = {b}";
try
{
Console.WriteLine(bazka.First(sql));
}
catch (Exception ex)
[*] {
}
}
W SQL miałem literówkę i wywaliło wyjątek gdzie miałem breakpointa,
zedytowałem SQL i dodałem w catchu wywołanie tej samej funkcji z tymi samymi argumentami
CallBazka(a,b)
i funkcja wykonała się ponownie, z poprawionym SQL - w ciężkim szoku byłem że to przeszło, a po wykonaniu jeszcze chyba nawet usunąłem później tego świeżo dodanego Calla, ale już nie pamiętam.
Nie zawsze takie "duże" zmiany przechodzą, VS powie Ci abyś zresetował program lub wycofał zmiany, ale od czego to zależy?