Obsługiwane zmiany kodu (C#)
Edit- and -Continue obsługuje większość typów zmiany kodu treść metody.Podczas debugowania, jednak nie można stosować większość zmian poza treść metody i kilka zmian w treści metod.Zastosować te zmiany nieobsługiwane, musi zatrzymać debugowanie i ponowne uruchomienie kodu programu.
Następujące zmiany nie można zastosować do kodu C# podczas sesji debugowania:
Zmiany w bieżącej instrukcji lub innych aktywnych instrukcji.
Aktywne sprawozdania obejmują wszelkie oświadczenia na stos wywołań funkcji, które były nazywane do bieżącej instrukcji.
Aktualne oświadczenie jest oznaczone żółtym tle w oknie źródła.Inne aktywne sprawozdania są oznaczone cieniowanego tła i są tylko do odczytu.Te kolory domyślne można zmienić w Opcje okno dialogowe.
Zmiany globalne symboli, w tym następujące:
Dodawanie nowych typów.
Dodanie metody do typu.
Zmienianie 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ą oznaczone cieniowanego tła.
Dodawanie nowej metody anonimowej.
Dodawanie, usuwanie lub zmiana atrybutów.
Dodawanie, usuwanie lub zmiana 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 metody anonimowej.
Niebezpieczny kod
Zmiany niebezpieczny kod mają te same ograniczenia, jak zmiany bezpieczny kod z jednego dodatkowe ograniczenia:
- Edytuj i nadal nie obsługuje zmiany niebezpieczny kod, który kończy się w ramach metody, która zawiera stackalloc operator.Dotyczy to tylko aktywne metody.Podczas debugowania, każda funkcja aktualnie na stos wywołań jest aktywnych funkcji.
Wyjątki
Edit- and -Continue obsługuje zmiany w catch, finally,i try bloków, z pewnymi wyjątkami, dla bloków w aktywne metody, takie jak metody, które są aktualnie na stos wywołań.
W funkcji active, czyli najnowszych funkcji w stos wywołań Edit- and -Continue nie obsługuje:
Dodawanie catch lub finallybloku wokół aktywnych instrukcji.
Dodawanie procedur obsługi wyjątków zagnieżdżonych z większą niż sześciu poziomów zagnieżdżenia.
W funkcji active, która jest najbardziej aktualnych funkcji na stos wywołań Edit- and -Continue nie obsługuje:
Dodawanie catch, finally lub trybloku wokół aktywnych instrukcji.
Dodawanie procedur obsługi wyjątków zagnieżdżonych z większą niż sześciu poziomów zagnieżdżenia.
Zmiana kodu w trybloku, 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 Edit and Continue Not Supported for LINQ.
Debugowanie trybu mieszanego (w trybie macierzystym zarządzanego).
Debugowanie SQL.
Debugowanie Dr.Zrzut Watson.
Edycja kodu po nieobsłużony wyjątek podczas "Unwind stos wywołań na Nieobsłużone wyjątki" opcja nie jest zaznaczona.
Debugowanie aplikacji osadzone w czasie wykonywania.
Debugowanie aplikacji, która ma Dołącz, aby zamiast uruchamiania aplikacji przez wybranie Start z debugowania menu.
Debugowanie zoptymalizowanego kodu.
Debugowanie kodu zarządzanego, gdy obiekt docelowy jest aplikacji 64-bitowych.Jeśli chcesz stosowania edycji i kontynuować, należy ustawić cel x 86.(ProjektWłaściwości, skompilować kartę, Zaawansowane kompilatora ustawienia.)
Debugowanie starą wersję kodu po nowej wersji nie może zbudować z powodu błędów kompilacji.
Zobacz też
Zadania
Jak: użyć polecenia Edycja i kontynuować (C#)