7
votes

Qu'est-ce que l'interface coulée pour en C #?

Je comprends comment écrire une interface fonctionne dans C #, comme par exemple décrit ici: Explication de CodeGuru

Human human = new Human();
// The human object is casted to the interface type
IIntelligence humanIQ = (IIntelligence)human;
humanIQ.intelligent_behavior();


0 commentaires

7 Réponses :


0
votes

Il est d'avoir accès à une implémentation d'interface explicite.

Parfois, vous voulez cacher le fait qu'une classe implémente une interface. Ceci est fait en implémentant l'interface explicitement. xxx


0 commentaires

2
votes

Parfois, vous ne savez peut-être pas ce qu'est un objet, mais vous savez qu'il implémente une certaine interface.


1 commentaires

Pourrait arriver, je suppose que vous feriez un baseObject est iterface pour vérifier. Curieux que le paramètre de méthode n'est pas saisi sur IINTERFACE déjà.



0
votes

Pour la même raison, vous lanceriez une classe dérivée de votre classe de base.


0 commentaires

0
votes

Exemple bref et populaire. Nous pouvons mettre en œuvre ce code: Iintelligence d'interface { Talk String (); } xxx

puis nous pouvons utiliser le code suivant: xxx

pour des informations plus détaillées, voir "Polymorphisme dans la programmation orientée objet" dans Google.


0 commentaires

0
votes

Considérez cette situation. J'ai ajouté une méthode à votre exemple.

interface IIntelligence
{
    bool intelligent_behavior();
}

class Human: IIntelligence
{
    public Human() { }  

    /// Interface method definition in the class that implements it
    public bool IIntelligence.intelligent_behavior()
    {
        Console.WriteLine("........");
        return true;
    }    

    //Some other method definition
    public bool intelligent_behaviour()
    {
        return false;
    }
}


0 commentaires

4
votes

.NET propose deux types d'implémentations d'interface impliquant une implémentation implicite et une mise en œuvre explicite.

Lorsque vous utilisez une implémentation implicite, elle fera partie de l'interface de type elle-même, par exemple si vous avez une interface iPerson comme celle-ci: P > xxx pré>

et vous l'implémentez comme suit: p> xxx pré>

Vous pouvez y accéder comme ceci (implicitement): p>

((IPerson)aPerson).Name;


0 commentaires

0
votes

J'ai trouvé de la coulée à l'interface utile lors du développement de plugins pour une application principale. J'ai créé trois projets. Premier projet "Connectorinterface" ne contient qu'une seule définition de classe qui est intégrée. Code de l'interface:

  Assembly assembly = Assembly.LoadFile(path); // path to dll
  Type type = assembly.GetType("dataSource1.DataReader");
  object myInstance = Activator.CreateInstance(type);

  MethodInfo method = type.GetMethod("getConnectorDataReader");
  object data = method.Invoke(myInstance, null);

  IConnectorDataReader reader =(IConnectorDataReader)data;

  // method usage
  while (reader.readNextRecord() == true) ....


0 commentaires