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

Windows Forms Discussion :

[C#] Equivalent Property avec arguments de VB.NET [FAQ]


Sujet :

Windows Forms

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 2
    Points : 2
    Points
    2
    Par défaut [C#] Equivalent Property avec arguments de VB.NET
    J'ai un petit problème de syntaxe que je n'arrive pas à résoudre.

    Je convertis une classe VB.NET en C#. Dans la classe initiale, j'ai ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    // déclaration de la propriété [classe CMContacts]
    Public ReadOnly Property Item(ByVal iRowId As Integer) As CMContact
            Get
                Dim objContact As CMContact
                For Each objContact In InnerList
                    If objContact.id.ToString = iRowId.ToString Then
                        Return objContact
                    End If
                Next
                Return Nothing
            End Get
        End Property
     
    (...)
     
    // appel
    objContact = CType(Me.Item(iRowGuid), CMContact)
    Je souhaite convertir ceci et écrit donc ceci: (après lecture de http://terrysmith.net/software/dotnet_ebook/chapter3.html)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    // déclaration de la propriété [classe CMContacts]
    public CMContact this[System.Guid iRowId]
    { 
    	get 
    	{ 
    		foreach(CMContact objContact in InnerList)
    		{
    			if (objContact.id.ToString() == iRowId.ToString())
    			{
    				return objContact;
    			}
    		}
    		return null;
    	}
    }
     
    (...)
     
    // appel
    CMContacts cmc;
    objContact = cmc(iRowGuid); // ne fonctionne pas
    Vous aurez compris que je me demande comment écrire l'appel correctement (ce qui n'est actuellement pas le cas)... :
    Développement actuel sous Visual Studio .NET 2003 en C# / ASP.NET sous Windows XP Pro

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 652
    Points : 730
    Points
    730
    Par défaut
    Appel : objContact = cmc[iRowGuid];
    Crochets, pas parenthèses.

    Au passage, en VB.NET ton iRowGuid est un Integer. En C# il devient de type Guid. C'est pas vraiment la même chose, faudrait vérifier ça :)
    Be wary of strong drink.
    It can make you shoot at tax collectors, and miss.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2004
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Merci ça fonctionne!

    (Pour le Guid/int, j'avais voulu tout mettre en integer dans mon code sur le forum -- pas de souci)
    Développement actuel sous Visual Studio .NET 2003 en C# / ASP.NET sous Windows XP Pro

  4. #4
    jab
    jab est déconnecté
    Rédacteur
    Avatar de jab
    Homme Profil pro
    SharePoint developpeur
    Inscrit en
    Février 2004
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : SharePoint developpeur
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 1 173
    Points : 4 339
    Points
    4 339
    Par défaut
    Je ne suis pas expert en C# mais pourquoi appelle tu la propriété this ?
    Cela ne risque-t-il pas d'amener la confusion ?

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 652
    Points : 730
    Points
    730
    Par défaut
    Citation Envoyé par jab
    Je ne suis pas expert en C# mais pourquoi appelle tu la propriété this ?
    Cela ne risque-t-il pas d'amener la confusion ?
    C'est le nom normal pour faire une propriété servant d'indexeur (blabla[ index ]).
    L'équivalent de faire une propriété 'Default' en VB.NET.
    Be wary of strong drink.
    It can make you shoot at tax collectors, and miss.

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

Discussions similaires

  1. [Properties] Modif d'un fichier properties avec Commentaires
    Par snetechen dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 19/10/2006, 16h00
  2. appel d'un module externe avec argument en entree
    Par oursblanc dans le forum Modules
    Réponses: 6
    Dernier message: 20/10/2005, 23h16
  3. creer une fonction avec arguments
    Par niglo dans le forum ASP
    Réponses: 3
    Dernier message: 03/06/2005, 08h04
  4. [VB.NET] Pb avec date sur VB.Net
    Par mpascolo dans le forum Windows Forms
    Réponses: 4
    Dernier message: 06/01/2005, 09h14
  5. [Kylix] equivalent winsock avec kylix
    Par Victor dans le forum EDI
    Réponses: 2
    Dernier message: 08/05/2002, 07h43

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