2016-10-19 3 views
0

I ayant ce code:nullable Passe (de nombre entier) à la sous ou la fonction

Dim iwidth As Integer? = 125 
    Dim iheight As Integer? = 45 
    Recs.Add(New With {Key .URLSmallPic = "/EditorImage/BBM4.jpg", Key .URL = "#", Key .Width = iwidth, Key .Height = iheight}) 

Recs est une variable de la liste. Le troisième et quatrième paramètre est nullable (de nombre entier). Comment faire une seule ligne de code, sans déclarer iwidth et iheight variable?

+0

Ma question est, pourquoi vous utilisez un type anonyme il y a du tout? Pourquoi ne déclarez-vous pas un type spécifique à cette fin? – jmcilhinney

+0

@jmcilhinney, merci pour votre réponse. Je souhaite ajouter une ligne personnalisée à mon résultat de requête Linq. –

+0

Votre requête LINQ produit-elle des instances d'un type spécifique ou d'un type anonyme? Si vous souhaitez pouvoir créer des instances du même type de deux manières différentes, il doit s'agir d'un type nommé spécifique. – jmcilhinney

Répondre

1

Pour répondre à votre question posée:

Recs.Add(New With {Key .URLSmallPic = "/EditorImage/BBM4.jpg", 
        Key .URL = "#", 
        Key .Width = New Nullable(Of Integer)(125), 
        Key .Height = New Nullable(Of Integer)(45)}) 
+0

Si Recs.Width est définie comme étant nullable, avez-vous réellement besoin de faire 'New Nullable (Of Integer) (125)' ou pouvez-vous simplement faire '125'? –

+0

@ProGrammer, il n'y a pas de 'Recs.Width'. Lisez la question à nouveau. 'Recs' est une' List' - probablement une 'List (Of Object)'. Le code crée une instance d'un type anonyme et l'ajoute à cette liste. Les types de données des propriétés de ce type anonyme sont déduits des valeurs fournies, si vous voulez que 'Width' et' Height' soient de type Integer ?, vous devez alors fournir des valeurs de ce type. Si vous fournissez un 'Integer' alors le type de données de la propriété sera' Integer' aussi. – jmcilhinney

+0

Ahh mon erreur, mais la question est toujours là. Si vous avez essayé de passer 125 et de le lire comme nullable, cela fonctionnerait-il, ou est-ce une autoconversion qui serait empêchée par Option Strict? –