Obsługiwane zmiany kodu (C#)
Edit- and -Continue obsługuje większość typów zmiany kodu w treści metod.Podczas debugowania, jednak nie można stosować większość zmian poza treść metody i kilka zmian w treści metod.Aby zastosować te zmiany nieobsługiwany, należy Zatrzymaj debugowanie i ponownie uruchomić z nową wersję kodu.
Następujące zmiany nie można zastosować do kodu C# podczas sesji debugowania:
Zmiany w bieżącej instrukcji lub jakichkolwiek innych oświadczeń active.
Aktywne instrukcji zawierają wszelkie instrukcje na stos wywołań funkcji, które były nazywane aby dostać się do bieżącej instrukcji.
Aktualne oświadczenie jest oznaczony żółtym tle w oknie źródła.Innych sprawozdań aktywne są oznaczane przez cieniowanego tła i są tylko do odczytu.Te domyślne kolory mogą być zmieniane w Opcje okno dialogowe.
Zmiany globalne symboli, w tym następujące:
Dodawanie nowych typów.
Dodanie metody do typu.
Zmiana podpisu typu.
Dodanie pola, zdarzenia lub właściwości do typu.
Edycja metody anonimowej lub jakąkolwiek metodę, która zawiera metody anonimowej.Metody te są oznaczane cieniowanego tła.
Dodawanie nowej metody anonimowe.
Dodawanie, usuwanie lub zmiana atrybutów.
Dodawanie, usuwanie i zmienianie using dyrektyw.
Usuwanie lub zmienianie zmiennych lokalnych.Dodawanie zmiennych lokalnych jest dozwolone.
Dodawanie foreach, using, lub lock wokół aktywnych instrukcji.
Modyfikując metodę, która zawiera yield return lub yield break instrukcji.
Zmiana konstruktora z polem, które jest inicjowany przez metodę anonimowego.
Niebezpieczny kod
Zmiany niebezpieczny kod mają takie same ograniczenia, jak zmiany bezpiecznego kodu z jednego dodatkowych ograniczeń:
- Edytuj i kontynuować, nie obsługuje zmiany niebezpieczny kod, który kończy pracę w ramach metody, która zawiera stackalloc operator.Dotyczy to tylko metod aktywnych.Podczas debugowania, każda funkcja obecnie na stos wywołań jest aktywna funkcja.
Wyjątki
Edit- and -Continue obsługuje zmiany catch, finally,i try bloki, z pewnymi wyjątkami dotyczącymi bloków w aktywne metody, takie jak metody, które są aktualnie na stos wywołań.
W funkcji active, czyli najnowszych funkcji na stosie wywołań Edit- and -Continue nie obsługuje:
Dodawanie catch lub finallyblok wokół aktywnych instrukcji.
Dodawanie obsługi wyjątków zagnieżdżonych z większą niż sześć poziomów zagnieżdżenia.
W funkcji active, która nie jest najnowszych funkcji na stos wywołań Edit- and -Continue nie obsługuje:
Dodawanie catch, finally lub tryblok wokół aktywnych instrukcji.
Dodawanie obsługi wyjątków zagnieżdżonych z większą niż sześć poziomów zagnieżdżenia.
Zmiana kodu w ramach tryblok, który zawiera aktywne instrukcji.
Nieobsługiwane scenariusze
Edit- and -Continue nie jest dostępna w następujących scenariuszach debugowania:
Debugowanie kodu LINQ.Aby uzyskać więcej informacji, zobacz Debugowanie LINQ.
Debugowanie trybu mieszanego (zarządzanego w trybie macierzystym).
Debugowanie SQL.
Debugowanie Dr.Watson zrzutu.
Edycja kodu po nieobsługiwany wyjątek, gdy "Unwind stos wywołań na nieobsłużonymi wyjątkami" opcja nie jest zaznaczona.
Debugowanie aplikacji osadzonych w czasie wykonywania.
Debugowanie aplikacji ma Dołącz, aby zamiast uruchamiania aplikacji wybierając Start z Debug menu.
Debugowanie zoptymalizowany kod.
Debugowanie starą wersję kodu po nowej wersji nie może zbudować ze względu na błędy kompilacji.
Zobacz też
Zadania
Porady: korzystanie z opcji edytuj i kontynuuj (C#)