ジェネリック型のコンテキスト内部でメソッドを変更すると、エディット コンティニュが有効なとき、デバッグ セッションを続行できなくなります。
このエラーは、ジェネリック型のメソッド (メソッドの場合は非ジェネリックも含む)、プロパティ、インデクサー、イベント、演算子、コンストラクター、またはデストラクターを変更しようとした場合に発生します。 エディット コンティニュは、デバッグ中に行われたこの種の変更をサポートしていません。
次のコードがあるとします。
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 に変更しようとすると、このエラーが発生します。
このエラーを解決するには
変更を元に戻し、変更のない状態でデバッグを継続します。
または
[デバッグ] メニューの [デバッグの停止] をクリックし、変更を行ってから新しいデバッグ セッションを開始します。