CS0456 de erro do compilador

Mensagem de erro

O parâmetro de tipo 'Tipo de parâmetro nome 1' tem a restrição 'struct' para que 'Tipo de parâmetro nome 1' não podem ser usadas sistema autônomo uma restrição para 'Tipo de parâmetro nome 2'

Restrições de tipo de valor são implicitamente sealed para que essas restrições não podem ser usadas sistema autônomo restrições em um segundo parâmetro de tipo.Isso ocorre porque os tipos de valor não podem ser substituídos.Para resolver esse erro, coloque uma restrição de tipo de valor diretamente no segundo parâmetro de tipo, em vez de fazer então indiretamente por meio do primeiro parâmetro de tipo.

Exemplo

O exemplo a seguir gera CS0456.

// CS0456.cs
// compile with: /target:library
public class GenericsErrors
{
   public class G5<T> where T : struct
   {
      public class N<U> where U : T {}   // CS0456
      public class N2<U> where U : struct {}   // OK
   }
}