Je sais que c'est une question très basique, mais un interviewer me l'a posée d'une manière très compliquée et j'étais impuissant :(
Je ne connais que la définition matérielle ou théorique d'une interface et je l'ai également mise en œuvre dans de nombreux projets sur lesquels j'ai travaillé. Mais je ne comprends vraiment pas pourquoi et comment cela peut être utile.
Je ne comprends pas non plus une chose dans l'interface, c'est-à-dire que nous utilisons par exemple
conn.Dispose();
dans le bloc final. Mais je ne vois pas que la classe implémente ou hérite IDisposable
interface ( SqlConnection
) classe, je veux dire. Je me demande comment je peux simplement appeler le nom de la méthode. De même, je ne comprends pas comment fonctionne la méthode Dispose, car nous devons implémenter le corps de la fonction avec notre propre implémentation pour toutes les méthodes d'interface. Alors comment les interfaces sont-elles acceptées ou nommées comme des contrats ? Ces questions n'ont cessé de me trotter dans la tête jusqu'à présent et, franchement, je n'ai jamais vu un bon fil de discussion qui expliquerait mes questions d'une manière que je puisse comprendre.
MSDN, comme d'habitude, a l'air très effrayant et aucune ligne n'y est claire ( Les amis, veuillez excuser ceux qui sont dans le développement de haut niveau, je crois fermement que tout code ou article doit atteindre l'esprit de quiconque le voit, donc comme beaucoup d'autres le disent, MSDN n'est pas utile. ).
L'enquêteur a dit :
Il a 5 méthodes et il est heureux de les implémenter directement dans la classe, mais si vous devez opter pour une classe abstraite ou une interface, laquelle choisissez-vous et pourquoi ? J'ai répondu à toutes les choses que j'ai lues dans différents blogs sur les avantages et les inconvénients des classes abstraites et des interfaces, mais il n'est pas convaincu, il essaie de comprendre "Pourquoi les interfaces" en général. "Pourquoi une classe abstraite en général, même si je ne peux implémenter les mêmes méthodes qu'une seule fois et que je ne vais pas les changer.
Je ne vois pas où sur le net, je pourrais trouver un article qui m'expliquerait clairement les interfaces et leur fonctionnement. Je suis l'un de ces nombreux programmeurs qui ne connaissent toujours pas les interfaces (je connais la théorie et les méthodes que j'ai utilisées), mais je ne suis pas convaincu de les avoir comprises clairement.
5 votes
J'ai également eu du mal à comprendre les interfaces. Bonne question.
4 votes
La programmation en fonction d'un contrat abstrait plutôt que d'une mise en œuvre concrète....En bref, cela signifie que vous pouvez substituer tout objet qui implémente une interface lorsqu'une interface est requise.
7 votes
SqlConnection
hérite deSystem.ComponentModel.Component
qui met en œuvreIDisposable
.2 votes
@MitchWheat - Ce n'est pas un exemple, la question est de savoir comment
SqlConnection
met en œuvreIDisposable
.0 votes
Oh Lee, ça m'a fait comprendre, merci. Mais je ne vois toujours pas comment ou où la fonctionnalité de la méthode "Dispose" est définie.
0 votes
@lee : pendant une minute, j'ai cru que vous commentiez la question plutôt qu'une petite partie de celle-ci...
0 votes
Je veux savoir si, par exemple, j'ai l'interface Interface Ia() { Void Cal() ; } Classe A : Ia { conn.Cal() } Comment cela fonctionne-t-il ? En cas de disposition ? Puis-je simplement faire un appel comme conn.Call() ou simplement public Cal() dans la classe sans définir son corps ou son opération ? J'ai vraiment du mal à comprendre. Je sais que théoriquement si nous devons implémenter une interface, nous devons définir son corps :( :( :( :(
0 votes
@ Lee : Merci Lee, cela m'a fait comprendre à un bien meilleur niveau...
0 votes
@Lee, j'ai manqué de voir le mot "Implements" bien dit, je suis heureux maintenant et je vais travailler plus sur ce sujet :) :) merci encore...