cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 2018
-
9 févr. 2016 à 20:19
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 2018
-
9 févr. 2016 à 20:25
Bonsoir le Forum,
Dans un projet, j'ai mis les options Strict On et Explicit On, ainsi que désactiver la référence Microsoft.VisualBasic.
Aucune erreur.
Pour suivre les recommandations de Zermelo, que je salue, j'ai rajouté l'option Infer Off.
Et là c'est la cata !!!
Deux exemples :
Public listofconfigcustomer As List(Of ConfigCustomer)
Public Class ConfigCustomer
Public Property Name() As String
Public Property NameAlias() As List(Of ItemsConfig)
Public Property Parameters() As List(Of String)
Public Property Infocgn() As String
Public Property Axone_Contract() As String
Public Property Product() As String
Public Shared Function LoadFileConfig(ByVal Path As String) As List(Of ConfigCustomer)
Dim xdoc As XDocument = XDocument.Load(Path)
Return (
From c In xdoc.Descendants("Customer")
Select New ConfigCustomer With {.Name = c.Attribute("name").Value, _
.Product = c.Attribute("product").Value, _
.Infocgn = c.Attribute("infocgn").Value, _
.Axone_Contract = c.Attribute("axone").Value, _
.Parameters = (From p In c.Descendants("Parameter")
Select p.Value).ToList(), _
.NameAlias = (From a In c.Descendants("Alias")
Select New ItemsConfig With {.Name = a.Attribute("name").Value, _
.BTTS_Contract = a.Attribute("bttscontrat").Value, _
.BTTS_Codebien = a.Attribute("bttscodebien").Value, _
.BTTS_Category = a.Attribute("bttscategorie").Value
}).ToList()}).ToList()
End Function
End Class
1er ex :
Dim customeralias = listofconfigcustomer.Single(Function(c) c.Name Is monitem.Tag).NameAlias.ToArray
aliascustomer = customeralias(0).Name
Erreurs:
Dim customeralias -> Toutes les déclarations de variable de Option Strict On requièrent une clause 'As'.
customeralias(0).Name -> Option Strict On rejette toute liaison tardive.
2ème ex :
For Each item In listofconfigcustomer customer = item.Name
Erreur:
For each item -> 'item' n'est pas déclaré. Il peut être inaccessible en raison de son niveau de protection.
Comment déclarer ces variables pour pallier à ces erreurs ?
Les exemples de MSDN sont montrés avec Infer On.
Merci de vos suggestions,
9 févr. 2016 à 20:25
Merci de cette précision.
Utilisant LINQ dans ce projet, je vais donc remettre l'Option Infer On.
Bonne soirée,
jean-marc