Udostępnij za pośrednictwem


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#)

Informacje

Edytowanie i kontynuować (Visual C#)

Edytowanie i kontynuować błędów i ostrzeżeń (C#)