CS0454 de erro do compilador
Mensagem de erro
Dependência de restrição circular envolvendo 'Tipo de parâmetro 1' e 'Parâmetro de tipo 2'
Este erro surge porque em algum momento um parâmetro de tipo refere-se para outro, e a segunda faz referência ao primeiro.Para corrigir este erro, quebra de dependência circular ao remover uma das restrições.Observe que a dependência de restrição circular pode ser indireta.
Exemplo
O código a seguir gera erro CS0454.
// CS0554
using System;
public class GenericsErrors
{
public class G4<T> where T : T { } // CS0454
}
O exemplo a seguir demonstra uma dependência circular entre duas restrições de tipo.
public class Gen<T,U> where T : U where U : T // CS0454
{
}