begin process at 2010 02 10 04:05:14
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Windows

 > 

Autre

 > 

Lister les membres d'une classe


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Lister les membres d'une classe

mercredi 5 mars 2008 à 11:46:48 | Lister les membres d'une classe

April_Seb4

Bonjour

J'explique mon problème
J'utilise une API pour gérer une carte d'affichage qui demande des uint en entrée
J'ai voulu utiliser une enum qui se caractérisait de la sorte

public enum eEssai : uint
{
Param1 = 0x3,
Param2 = 0x5
}

Cela pourrait fonctionner mais je serais obligé de faire des casts dans tous mes appels de fonction
J'ai donc décidé de passer par une classe et des membres publics sous forme de constante

public class cEssai
{
public const uint Param1 = 0x3;
public const uint Param2 = 0x5;
}

Du coup, exit le cast cependant je n'arrive pas à parcourir la classe pour connaitre tous les membres publics de type uint (pour le proposer dans une combo), chose qui est assez simple avec des enums

Des idées, des propositions ?
Merci

TheVengor
mercredi 5 mars 2008 à 12:41:23 | Re : Lister les membres d'une classe

lemmingperceval

salut,
Regarde cela:

private

object obj = new {Class à instancier}
PropertyInfo[] propertyInfo = obj.GetType().GetProperties();
foreach (PropertyInfo currentProperty in propertyInfo)
{
         
currentProperty.GetValue(obj, null).ToString();
}

Ca c'est pour les propriétés, mais si tu fais un MethodInfo[] ca te donnera les méthodes, FieldInfo[] te donnera les champs, etc
mercredi 5 mars 2008 à 12:44:21 | Re : Lister les membres d'une classe

lemmingperceval

Là dans l'exemple j'ai mis GetValue(), mais si tu regarde tu verras que tu as aussi Name, etc

mercredi 5 mars 2008 à 17:26:22 | Re : Lister les membres d'une classe

Lutinore

Administrateur CodeS-SourceS
Réponse acceptée !

Salut, c'est bien en passant par System.Reflection comme le montre lemmingperceval :

public static class Params
{
    public const uint Param1 = 0x3;
    public const uint Param2 = 0x5;

    public static string[ ] GetNames( )
    {
        Type t = typeof( Params );
        FieldInfo[ ]fields = t.GetFields(
            BindingFlags.Public | BindingFlags.Static );

        List< string > names = new List< string >( 10 );

        foreach( FieldInfo fi in fields )
        {
            if ( fi.IsLiteral )
                names.Add( fi.Name );
        }

        return names.ToArray( );
    }

    public static uint GetValueFromName( string name )
    {
        Type t = typeof( Params );
        FieldInfo fi = t.GetField( name,
            BindingFlags.Public | BindingFlags.Static );

        if ( fi == null )
            throw new ArgumentOutOfRangeException( "name" );

        return ( uint )fi.GetValue( null );
    }
}

jeudi 6 mars 2008 à 16:50:22 | Re : Lister les membres d'une classe

April_Seb4

Merci beaucoup, ça marche nickel

TheVengor


Cette discussion est classée dans : lister, classe, enum, membres, uint


Répondre à ce message

Sujets en rapport avec ce message

lister une enum ? [ par jesusonline ] Bonjour, je voudrais faire un truc de ce style : public enum ArticleType { Articles = 1, News = 2, Astuces = 3 } void Enum || mise en place d'une classe protocole [ par YOOP ] Bonjour,je cherche à metre en place un protocole de communication sur RS232 pour une application embarqué.Soit g deja la connexion, une partie de l'in Création dynamique membres sur classe existante [ par TPPower ] Je voudrais savoir si il est possible de créer automatiquement un nouveau membre sur une classe existante (en utilisant System.Reflexion.Emit.TypeBuil Conception de classes [ par Seth77 ] Salut J'ai une classe avec plusieurs variables membres ... et j'aimerais creer des classes derivées de cette classe, mais dont certaines accedent a de lister les membres d un groupe active directory [ par loseyes ] bonjour,je travaille actuellement sur une application en c# s'appuyant sur l'active directory. Je parviens sans aucun probleme à lister les utilisateu Conseil sur l'utilisation de la mémoire :utilisation de static [ par taoetc ] Bonjour , voila, j'ai besoin d'avoir une liste de constante accessible par plusieurs classes.J'ai donc décidé de créer une classe qui contiendrait t Jeu en réseau local [ par CMatt ] Bonjour à tous!J'ai développé un petit jeu en C# qui possède une "base de données" plutôt complexe, par ex. : - une classe Systeme contient un tabl créer une fenêtre héritant de la classe FolderBrowserDialog [ par godefrw ] Je cherche à créer une fenêtre ressemblant fortement à la fenêtre FolderBrowserDialog mais qui permettrait à l'utilisateur de rentrer ,en plus, le n Obtenir la classe d'une feuille fille MdiChildren [ par MAQFAB ] Prenons une application simple avec une classe FeuilleMDI et deux classe FeuilleFille1 et FeuilleFille2.Je veux intercepter l'évènement Closing sur Fe Lister une table => winform + vs.net [ par jimmy69 ] Bonsoir, Voila je debute en c# sous visual studio . net version 2003 je pense ! j'ai deja fait un peu d'asp.net et j'arrivais a lister une table sql s


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,484 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales