I vincoli di tipo del metodo di estensione '<methodname>' non possono mai essere soddisfatti
I parametri di tipo di questo metodo interagiscono in modo da impedire che vengano soddisfatti. Di seguito viene riportato un esempio di metodo di estensione.
'' Not valid.
'<Extension()> _
'Sub extensionExample(Of T As U, U)(ByVal para1 As T, ByVal para2 As U)
'End Sub
Poiché il metodo è un metodo di estensione, il compilatore deve poter determinare il tipo o i tipi di dati che il metodo estende solo in base al primo parametro della dichiarazione del metodo, para1
, e all'argomento inviato per tale parametro. Quando il primo parametro fa riferimento a parametri di tipo generici, para1 as T
, i vincoli sui parametri generici limitano il set di tipi a cui il metodo si applica.
L'applicabilità di un metodo di estensione è determinata dall'argomento fornito per il primo parametro, che nel codice seguente è arg1
.
'' Not valid.
'arg1.extensionExample(arg2)
Deve essere possibile verificare i vincoli su tutti i parametri di tipo generici a cui fa riferimento il primo parametro, para1
, analizzando solo il primo argomento, arg1
. In extensionExample
non è possibile determinare il set di tipi che si stanno estendendo solo dal primo parametro. Il parametro di tipo T
è vincolato dal parametro di tipo U
, a cui para1
non fa riferimento, e non può essere dedotto da arg1
. L'applicabilità del metodo a qualsiasi possibile tipo non può pertanto essere verificata e il metodo non potrà mai essere chiamato.
ID errore: BC36561
- Modificare la dichiarazione di tipo per rimuovere l'interdipendenza tra i tipi.
Feedback su .NET
.NET è un progetto di open source. Selezionare un collegamento per fornire feedback: