IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

conversion C# vers VB.NET [Débutant]


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    186
    Détails du profil
    Informations personnelles :
    Localisation : Pays-Bas

    Informations forums :
    Inscription : Décembre 2005
    Messages : 186
    Par défaut conversion C# vers VB.NET
    Bonjour,

    J'ai un bout de code que je dois convertir de C# vers VB.NET, j'utilise des convertisseurs en ligne qui fonctionnent bien, mais tous coincent sur la syntaxe suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public void CopyNullableProperty(PropertyInfo serviceGroupProperty, object resultValue, int index)
            {
                if (((long?[])resultValue)[index].HasValue)
                {
                    serviceGroupProperty.SetValue(this, ((long?[])resultValue)[index].Value, null);
                }
            }
    C'est le code qui est dans le if qui pose problème. Je ne comprends pas trop cette syntaxe, que veut-elle dire, un tableau de long null ? Avez-vous une idée de comment je peux traduire ça en VB.NET ?

    Merci !

  2. #2
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2007
    Messages : 871
    Par défaut
    Salut,

    Voila ce que tu veux faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        Public Sub CopyNullableProperty(serviceGroupProperty As PropertyInfo, resultValue As Object, index As Integer)
            Dim test As Long?() = resultValue
     
            If test(index).HasValue Then
                serviceGroupProperty.SetValue(Me, test(index).Value, Nothing)
            End If
     
        End Sub

    Par contre comme dans ton extrait on a jamais teste que resultValue est un array de long, donc cela peut crasher...

    Essayer de copier du code que l'on ne comprends pas est vraiment pas une bonne idee, surtout lorsque l'on joue avec la reflexion.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    186
    Détails du profil
    Informations personnelles :
    Localisation : Pays-Bas

    Informations forums :
    Inscription : Décembre 2005
    Messages : 186
    Par défaut
    Merci beaucoup pour ta réponse !

    Oui, je suis d'accord avoir toi, j'ai horreur de copier du code que je ne comprends pas, l'ennui c'est que je dois intégrer une API qui est entièrement en C# à mon appli qui est en VB.NET, si je cherche à comprendre toute l'API pour la réécrire, j'en ai pour des semaines.
    Je suis d'ailleurs en train de m'orienter vers une autre solution : intégrer le C# et le VB.NET dans la même appli (avec des sous répertoires dans le APP_Code), au moins, je laisse l'API telle quelle (en espérant que ça marche).

  4. #4
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2007
    Messages : 871
    Par défaut
    Malheusement pour toi ce n'est pas possible d'avoir les 2 langages dans le meme projet.

    Donc il faudra avoir un projet en c# et un autre en vb.net et que l'un referencie l'autre.

    Si il s'agit d'application web une des solution est d'utiliser les repertoires virtuels pour 'simuler' que l'un soit dans l'autre.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    186
    Détails du profil
    Informations personnelles :
    Localisation : Pays-Bas

    Informations forums :
    Inscription : Décembre 2005
    Messages : 186
    Par défaut
    En fait, si ça fonctionne d'avoir à la fois C# et VB.NET dans le même projet (dans le cas d'une appli web en tout cas) ! Ce qui pose problème c'est la compilation, la solution consiste alors à faire compiler le code C# et le code VB.NET séparément en les plaçant dans 2 sous-répertoire du App_Code.

    Par exemple, un sous répertoire VB_Code et un sous répertoire CS_Code.
    Il faut ensuite ajouter le code suivant dans le web.config :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <compilation>
      <codeSubDirectories>
            <add directoryName="VB_Code"/>
            <add directoryName="CS_Code"/>
       </codeSubDirectories>
    </compilation>
    Ca me tire une bonne épine du pied car ça m'a évité de devoir continuer de chercher chaque erreur de conversion C# -> VB.NET

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Conversion code VB6 vers VB.NET
    Par dakota77 dans le forum VB.NET
    Réponses: 4
    Dernier message: 15/06/2008, 23h14
  2. Conversion C# vers Delphi.NET
    Par JulioG dans le forum Delphi .NET
    Réponses: 2
    Dernier message: 15/02/2008, 12h03
  3. Conversion C# vers C++.net
    Par Dlyan dans le forum MFC
    Réponses: 3
    Dernier message: 23/03/2006, 16h00
  4. [VB.net]problème de conversion de code c# vers VB.net
    Par cladsam dans le forum Windows Forms
    Réponses: 2
    Dernier message: 18/10/2005, 14h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo