Partager via


Option Strict On n'autorise pas les conversions restrictives lors des conversions de types implicites entre l'expression lambda et le délégué '<NomDélégué>'

Mise à jour : novembre 2007

Option Strict On does not allow narrowing in implicit type conversions between the lambda expression and delegate '<delegatename>'

Avec Option Strict On, vous ne pouvez pas avoir de conversion restrictive entre le type de données d'un paramètre dans un délégué et le paramètre correspondant d'une expression lambda assignée à une variable de ce type délégué. Par exemple, dans le code suivant, le délégué Del a un paramètre de type Integer.

Delegate Function Del(ByVal p As Integer) As String

Par conséquent, le paramètre correspondant de n'importe quelle expression lambda assignée à une variable de type Del peut être un Integer ou tout type de données pour lequel il existe une conversion étendue à partir de Integer.

' Valid.
Dim example1 As Del = Function(n As Integer) "Valid"
Dim example2 As Del = Function(n As Long) "Valid"

' Not valid.
Dim example3 As Del = Function(n As Short) "Not Valid"

ID d'erreur : BC36662

Pour corriger cette erreur

  • Modifiez le type de données du paramètre dans le délégué ou l'expression lambda afin que la relation d'élargissement requise existe.

  • Ne spécifiez pas les types de données des paramètres dans l'expression lambda. Les types seront déduits des paramètres correspondants dans le délégué.

    Dim example4 As Del = Function(n) "Valid"
    

Voir aussi

Concepts

Expressions lambda

Conversions étendues et restrictives

Conversion simplifiée des délégués

Autres ressources

Délégués en Visual Basic