


Compilation des connaissances de base C#?: interface des connaissances de base (8)
Feb 11, 2017 pm 01:18 PM Nous avons évoqué plus haut les classes abstraites. Sa caractéristique est que les sous-classes doivent implémenter des méthodes de modification abstraites. Il existe également des méthodes virtuelles modifiées. Les sous-classes de méthodes virtuelles modifiées peuvent être réécrites ou utilisées directement sans réécriture. Cependant, comme C# utilise également l'héritage unique, lorsque vous définissez une classe parent puis héritez pour étendre certaines classes, vous rencontrerez des situations inappropriées. Parce que nous, les programmeurs, utilisons un langage de programmation pour décrire le monde, il est préférable d'organiser les classes, de nommer les classes, d'écrire des méthodes, etc. dans nos projets pour qu'ils soient similaires au monde réel, afin que le développement se fasse sans effort et que la correction des bugs soit plus facile.
Par exemple, dans un projet, de nombreux formulaires sont utilisés. Certains formulaires doivent retraiter leurs événements de fermeture, et d'autres doivent traiter leurs événements de redimensionnement. Cependant, il est toujours très ennuyeux de devoir écrire des méthodes pour fermer des événements ou modifier la taille des événements à chaque fois que vous écrivez un formulaire. L'héritage peut-il être utilisé à ce moment-là ?
public class IControlAble1 { public event EventHandler OnCloseEvent;//關(guān)閉 public void Control_Close(object sender, EventArgs e) { if (OnCloseEvent != null) { OnCloseEvent(sender, e); } } } public class IControlAble2 { public event EventHandler OnSizeChangeEvent;//改變大小 public void Control_SizeChange(object sender, EventArgs e) { if (OnSizeChangeEvent != null) { OnSizeChangeEvent(sender, e); } } }
Imaginez, chaque fois que vous écrivez une classe de formulaire, cela semble toujours étrange d'hériter de IControlAble1 ou IControlAble2, car ces deux classes ne sont pas des classes de formulaire. à l’heure actuelle, il y a quelque chose qui peut être implémenté, c’est l’interface.
L'interface, comme le dit le livre, l'interface est un code de conduite. Et les interfaces sont également très courantes dans la vie. Par exemple, nous parlons souvent des interfaces USB2.0. Tous les fabricants qui produisent des cables USB ne sont pas directement liés, mais tout le monde respecte la directive USB2.0 pour produire. .Chaque Le point de connexion des fils racine, quelle est la longueur, la largeur et la hauteur, comment disposer chaque fil de données... doit être conforme à cette directive. De cette manière, les lignes produites par chacun peuvent être utilisées universellement.
Pour un programme, c'est comme si différentes classes avaient la même super classe, et qu'elles implémentaient toutes les méthodes abstraites de la super classe. De cette fa?on, toutes les classes ont une sorte de critères. Cependant, C# a un héritage unique, ce qui rend sa mise en ?uvre difficile. Il y a donc la notion d’interface en C#. Jetez un ?il à la forme standard et aux caractéristiques des interfaces?:
/// <summary> /// 1、接口不允許public,private,interna、protected修飾,因為所有的接口都是公用的; /// 2、成員不帶代碼體; /// 3、接口不能定義字段成員; /// 4、不能用關(guān)鍵字static,virtual,abstract、sealed修飾 /// 5、一個類可以實現(xiàn)多個接口 /// </summary> interface IMyInterfaceAble { //方法、字段 int MyValue { get; set; } void Method1(); void Method2(); }
La dénomination des interfaces en C# est généralement?: I***able, I signifie interface, et le suffixe Able. L'interface peut donc être vue comme : ayant... des capacités.
Cela peut résoudre le problème ci-dessus. Modifiez les deux classes en interfaces, puis implémentez-les dans d'autres classes de formulaire.
interface IControlAble1 { //沒有代碼體,并且不修飾 event EventHandler OnCloseEvent;//關(guān)閉 void Control_Close(object sender, EventArgs e); } interface IControlAble2 { event EventHandler OnSizeChangeEvent; void Control_SizeChange(object sender, EventArgs e); } public class MainForm : IControlAble1,IControlAble2//可以實現(xiàn)多個接口 { /* 窗體代碼 */ public event EventHandler OnCloseEvent; public void Control_Close(object sender, EventArgs e) { Console.WriteLine("重寫關(guān)閉事件。"); } public event EventHandler OnSizeChangeEvent; public void Control_SizeChange(object sender, EventArgs e) { Console.WriteLine("重寫大小改變事件。"); } } public class ChildForm1 : IControlAble1 { /* * 窗體代碼 */ public event EventHandler OnCloseEvent; public void Control_Close(object sender, EventArgs e) { Console.WriteLine("重寫關(guān)閉事件。"); } } public class ChildForm2 : IControlAble2 { /* 窗體代碼 */ public event EventHandler OnSizeChangeEvent; public void Control_SizeChange(object sender, EventArgs e) { Console.WriteLine("重寫大小改變事件。"); } }
De cette fa?on, le code sera plus pratique à écrire et aucune écriture ne sera manquée.
Ce qui précède est la compilation des connaissances de base de C#?: connaissances de base (8) du contenu de l'interface. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (m.miracleart.cn). )!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

L'histoire et l'évolution de C # et C sont uniques, et les perspectives d'avenir sont également différentes. 1.C a été inventé par Bjarnestrousstrup en 1983 pour introduire une programmation orientée objet dans le langage C. Son processus d'évolution comprend plusieurs normalisations, telles que C 11, introduisant des mots clés automobiles et des expressions de lambda, C 20 introduisant les concepts et les coroutines, et se concentrera sur les performances et la programmation au niveau du système à l'avenir. 2.C # a été publié par Microsoft en 2000. Combinant les avantages de C et Java, son évolution se concentre sur la simplicité et la productivité. Par exemple, C # 2.0 a introduit les génériques et C # 5.0 a introduit la programmation asynchrone, qui se concentrera sur la productivité et le cloud computing des développeurs à l'avenir.

La principale différence entre une classe abstraite et une interface est qu'une classe abstraite peut contenir la mise en ?uvre d'une méthode, tandis qu'une interface ne peut définir la signature d'une méthode. 1. La classe abstraite est définie à l'aide du mot-clé abstrait, qui peut contenir des méthodes abstraites et concrètes, adaptées pour fournir des implémentations par défaut et un code partagé. 2. L'interface est définie à l'aide du mot clé de l'interface, qui ne contient que des signatures de méthode, qui conviennent à la définition des normes comportementales et de l'héritage multiple.

Comment créer des applications en utilisant .NET? La création d'applications à l'aide de .NET peut être réalisée via les étapes suivantes: 1) Comprendre les bases de .NET, y compris le langage C # et le support de développement multiplateforme; 2) Apprenez des concepts de base tels que les composants et les principes de travail de l'écosystème .NET; 3) Master Utilisation de base et avancée, des applications de console simples aux opérations de webapis et de base de données complexes; 4) familiariser avec les erreurs courantes et les techniques de débogage, telles que les problèmes de configuration et de connexion de la base de données; 5) L'optimisation des performances de l'application et les meilleures pratiques, telles que la programmation et la mise en cache asynchrones.

C # .NETtisversatileforbothwebandDeskTopDevelopment.1) forweb, useasp.netfordynamicapplications.2) fordesktop, employwindowsformSorwpfforrichInterfaces.3) usexamarinforcross-plateformDevelopment, permanant les codéescosswindows, macos, linux, etmobiledevices.

.NetFramework est un cadre logiciel et C # est un langage de programmation. 1..NetFramework fournit des bibliothèques et des services, prenant en charge le développement d'applications de bureau, Web et mobile. 2.C # est con?u pour .NetFramework et prend en charge les fonctions de programmation modernes. 3..NetFramework gère l'exécution du code via CLR, et le code C # est compilé en IL et exécuté par CLR. 4. Utilisez .NetFramework pour développer rapidement des applications, et C # fournit des fonctions avancées telles que LINQ. 5. Les erreurs courantes incluent la conversion de type et les blocages de programmation asynchrones. Des outils VisualStudio sont nécessaires pour le débogage.

C # est un langage de programmation moderne et orienté objet développé par Microsoft et dans le cadre du .NET Framework. 1.C # prend en charge la programmation orientée objet (POO), y compris l'encapsulation, l'héritage et le polymorphisme. 2. La programmation asynchrone en C # est implémentée via Async et attend des mots clés pour améliorer la réactivité des applications. 3. Utilisez LINQ pour traiter les collections de données concisement. 4. Les erreurs courantes incluent les exceptions de référence NULL et les exceptions indexes hors gamme. Les compétences de débogage comprennent l'utilisation d'un débogueur et une gestion des exceptions. 5. L'optimisation des performances comprend l'utilisation de StringBuilder et d'éviter l'emballage et le déballage inutiles.

Comment déployer une application C # .net sur Azure ou AWS? La réponse est d'utiliser AzureAppService et AwselasticBeanStalk. 1. Sur Azure, automatiser le déploiement à l'aide d'AzureAppService et AzurePipelines. 2. Sur AWS, utilisez Amazon ElasticBeanStalk et Awslambda pour implémenter le déploiement et le calcul sans serveur.

En Unity, les moteurs de physique 3D et les arbres de comportement d'IA peuvent être mis en ?uvre via C #. 1. Utilisez le composant RigidBody et la méthode AddForce pour créer une balle de défilement. 2. Grace à des n?uds d'arbres comportementaux tels que la patrouille et le THASEPlayer, les personnages de l'IA peuvent être con?us pour patrouiller et chasser les joueurs.
