次の方法で共有


C# エディット コンティニュ: エラー 4029

ジェネリック型のコンテキスト内部でメソッドを変更すると、エディット コンティニュが有効なとき、デバッグ セッションを続行できなくなります。

このエラーは、ジェネリック型のメソッド (メソッドの場合は非ジェネリックも含む)、プロパティ、インデクサー、イベント、演算子、コンストラクター、またはデストラクターを変更しようとした場合に発生します。 エディット コンティニュは、デバッグ中に行われたこの種の変更をサポートしていません。

次のコードがあるとします。

static class Utils<T> where T: System.IComparable

{

   public static T Max(T item1, T item2)

   {

      if (item1.CompareTo(item2) > 0)

         return item1;

      return item2;

   }

}

class Program

{

   static void Main(string[] args)

   {

      int max = Utils<int>.Max(10, 20);

   }

}

ブレークポイントを if (item1.CompareTo(item2) > 0) 行に追加してデバッグを開始し、> 0 を >= 0 に変更しようとすると、このエラーが発生します。

このエラーを解決するには

  • 変更を元に戻し、変更のない状態でデバッグを継続します。

    または

    [デバッグ] メニューの [デバッグの停止] をクリックし、変更を行ってから新しいデバッグ セッションを開始します。

参照

参照

ジェネリック (C# プログラミング ガイド)

サポートされているコード変更 (C#)

エディット コンティニュ (Visual C#)

その他の技術情報

エディット コンティニュのエラーと警告 (C#)