9
votes

Quel est le reflet dans c #? Où utilisons-nous ce concept dans notre application?

Qu'est-ce que la réflexion dans c #? Où utilisons-nous ce concept dans nos applications?


5 commentaires

Le premier coup n'est déjà pas trop mauvais: Google.com/...


Est-ce que je rêve ou que le titre de la question est plus long que la question elle-même?


@ 0xa3: Je suis à peu près sûr que notre réponse à la tête-à-tête à une personne qui demande une question introductive sur Stackoverflow n'est pas censée être "Go Google It toi-même" ou "RTFM".


@Scott, plus, à compter de ce moment, le premier coup sur le lien 0xa3 posté renvoie à cette question. Je suppose donc que c'est un cas de GNSO. * 8 ')


Dupliqué combiné de et Stackoverflow.com/Questtions/18977712/... ?


4 Réponses :


16
votes

réflexion fournit des objets (de type type ) qui encapsulent des assemblages, des modules et des types. Vous pouvez utiliser la réflexion pour créer de manière dynamique une instance d'un type, lier le type à un objet existant ou obtenir le type d'un objet existant et invoquer ses méthodes ou accéder à ses champs et propriétés. Si vous utilisez des attributs de votre code, la réflexion vous permet d'y accéder ...

Pour référence, Article MSDN sur la réflexion et le projet de code a Réflexion assez bien expliquée.

Par exemple, consultez exemples de réflexion C # Réflexion .


4 commentaires

où nous utilisons cela? Pouvez-vous me donner l'application de cela ??


@HITESH Vous pouvez l'utiliser avec des assemblages ... L'article a de bons exemples ...


Je pense que c'est une bonne idée de mettre courtoisie


@Srinivas Ya je suis d'accord avec toi ...



5
votes

du Documentation :

réflexion fournit des objets (de type Type) qui encapsulent des assemblages, modules et types. Vous pouvez utiliser réflexion pour créer de manière dynamique un instance d'un type, lier le type à un objet existant, ou obtenir le type d'un objet existant et invoquer sa méthodes ou accéder à ses champs et Propriétés. Si vous utilisez Attributs dans votre code, réflexion vous permet d'y accéder. Pour plus Informations, voir Attributs. P> BlockQuote>

Wikipedia dit ceci: p>

en informatique, la réflexion est la processus par lequel un programme informatique peut observer et modifier son propre structure et comportement. Les Programmation paradigme conduit par La réflexion s'appelle réfléchissant la programmation. C'est un genre particulier de métaprogramming. p> blockquote>

Par exemple, si vous souhaitez afficher programmable toutes les méthodes d'une classe, vous pouvez le faire comme suit: P>

using System;
using System.Reflection;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {

            var t = typeof(MyClass);

            foreach (var m in t.GetMethods())
            {
                Console.WriteLine(m.Name);
            }
            Console.ReadLine();
        }
    }


    public class MyClass
    {
        public int Add(int x, int y)
        {
            return x + y;
        }

        public int Subtract(int x, int y)
        {
            return x - y;
        }
    }
}


2 commentaires

où nous utilisons cela? Pouvez-vous me donner l'application de cela ??


@HITESH J'ai ajouté un exemple.



0
votes

Vous avez des réponses ci-dessus de quelle réflexion est, certains cas où je l'ai utilisé dans le passé:

  • une méthode générique qui prend une liste de propriétés et copie ces propriétés dans un objet à un autre
  • Une méthode qui utilise l'attribut de description pour obtenir du texte pour Enum, similaire à Cette < / a>

    Voir aussi Cet article pour des exemples de réflexion, des liens supplémentaires au bas de la page.


2 commentaires

Merci de m'avoir donné un tel lien, mais une question est que lorsque nous ajoutons comme espace de noms dans une page simple .cs ou une autre page? plz me dire ça?


Désolé, je ne suis pas sûr de ce que tu veux dire. L'espace de noms pour la réflexion est System.Reflection. C'est ce que tu veux dire?



2
votes

Une utilisation de la réflexion Vous trouverez dans des cadres: pour effectuer une fonction particulière (dans ce cadre), une classe est utilisée. Mais la classe exacte n'est pas connue à l'heure de la compilation, mais elle est configurée dans un fichier texte, en tant que nom de classe (y compris l'ensemble de son assemblage). Utilisation de la réflexion Vous pouvez prendre cette chaîne et créer une instance de cette classe particulière.


0 commentaires