Maison >développement back-end >Tutoriel C#.Net >Récapitulatif des étapes classiques d'apprentissage pour débuter avec C# (broché)
CLR : common Language Runtime (.net Common Language Runtime) gère l'exécution de toutes les applications développées par la bibliothèque .net
CTS : common type system (common type system) précise les plus basiques types Propice à l'interopérabilité entre différents langages utilisant le .NET Framework
CIL : langage intermédiaire commun (langage intermédiaire commun) compile le code dans ce langage Le code CIL est indépendant de l'ordinateur, du système d'exploitation et du processeur, et est. compilé par le compilateur JIT Créez le code natif requis en utilisant
JIT : juste à temps (le code CIL n'est compilé qu'en cas de besoin)
Code managé : compilez le code en CIL, stockez-le dans un assembly et utilisez le JIT compilateur vers Il compile le code requis par la machine native et gère également l'exécution du code écrit dans le .NET Framework.
Étapes requises pour créer une application .NET :
->Écrivez le code de l'application en utilisant C#
->Compilez le code en CIL et stockez-le dans l'assembly
-> Lors de l'exécution du code, le code doit être compilé en code natif à l'aide d'un compilateur JIT
-> Exécution de code natif dans un environnement CLR géré
Réinitialisation des paramètres de développement vs c# : Erreur 1 : Erreur lors de l'importation des paramètres pour 'CoffeeScript' [Code 5297].
Séquence d'échappement, par exemple, utilisez "pour échapper" des guillemets doubles et utilisez n pour échapper au caractère de nouvelle ligne.
Insertion de chaîne : par exemple, affichez Console.WriteLine($"{outline}") ;
Priorité des opérateurs : ++, -- utilisé comme préfixe, (), +, - lorsqu'il est unaire, ! , ~
*, /, %
+, -
<<,>>
<,>,<=,>=
==, !=
&
^
|
&&
||
=,*=,/=,%=,+=,-=,<<=,> ;>=,&=,^=,|=
++,--utilisé comme suffixe
Technologie de branche C# : opérateur ternaire, instruction if, instruction switch
instruction switch En C++, vous pouvez exécuter un autre cas après avoir exécuté une instruction case, mais cela est illégal en C#. Chaque instruction case nécessite une pause pour interrompre l'exécution du commutateur
De plus, vous pouvez utiliser l'instruction return, qui non seulement interrompt la structure du commutateur, mais aussi Interrompre l'exécution de la fonction en cours ; vous pouvez également utiliser l'instruction goto
Trois types de boucles : boucle do, boucle while, boucle for
Commandes d'interruption de boucle : break, continue, return
Utilisez check pour définir le contrôle de débordement Contexte
Énumération : la conversion des valeurs d'énumération vers d'autres types nécessite une conversion explicite
Utilisez replace("str1", "str2") pour remplacer la fonction et utilisez str2 pour remplacer toutes les chaînes La commande str1
Passez les paramètres par mot-clé référence ref, pour modifier la valeur du paramètre de l'appel, vous devez utiliser une variable 'non-const' après initialisation.
Ou utilisez le mot-clé out du paramètre de sortie pour utiliser des variables non attribuées. Lorsque la fonction est utilisée, elle doit être considérée comme non attribuée.
Le mot-clé static définit des variables globales, et const définit des constantes globales
La signature d'une fonction contient le nom de la fonction et ses paramètres, mais n'inclut pas son type de retour
Delegate : un type qui stocke les références de fonction, ne le fait pas Avec un corps de fonction, en utilisant le mot-clé délégué, la déclaration déléguée spécifie un type de retour et une liste de paramètres
Classe : comprise comme le dessin de planification de la voiture, objet : compris comme la voiture elle-même .
La classe détermine les propriétés et le comportement qu'aura l'objet.
class progrem
{ //Vous pouvez écrire des champs, des fonctions, des propriétés et des constructeurs. .
//Champ : Stocker les données Attribut : Protéger le champ get set (l'instanciation est requise lors de la protection des attributs automatiques) Fonction : Décrire le comportement de l'objet Constructeur : Initialiser l'objet et attribuer une valeur à chaque attribut de l'objet
>
Améliorer les fondations de Chuanzhi Podcast 1 :
oop :
Encapsulation :
---> Réduire beaucoup de code redondant
---> L'encapsulation sera difficile à comprendre Les fonctions sont encapsulés, mais une interface très simple est fournie avec le monde extérieur. Nous l'utiliserons bien.
Héritage :
---> Réduit le code redondant dans les classes
---> Permet aux classes d'avoir une relation les unes avec les autres, jetant les bases du polymorphisme.
Caractéristiques :
Racine unique : Une sous-classe ne peut avoir qu'une seule classe parent
Transitivité : Classe grand-père Classe papa Classe fils
Transformation de Richter :
1. Les sous-classes peuvent être attribuées à la classe parent Classe
2. Si la classe parent contient un objet de sous-classe, vous pouvez convertir la classe parent en objet de sous-classe correspondant
----> Mots clés
1. est : return bool Type, indiquant si cette conversion peut être fait
2. comme : Si la conversion réussit, l'objet est renvoyé, sinon null est renvoyé
Fonction : Nous pouvons traiter toutes les sous-classes comme des classes parents, et effectuer des opérations sur la classe parent Programmation, écriture universelle code, s’adapte à l’évolution des besoins.
Polymorphisme :
interface
Mots clés
nouveau
1. Créer un objet
--->Créer de l'espace dans le tas (l'objet est un type de référence, et les valeurs du type de référence sont dans le tas) - -->Créer un objet dans l'espace de tas ouvert
1. Un objet représentant la classe actuelle
2. Appeler explicitement son propre constructeur
base
1. Appeler explicitement le constructeur de la classe parent (pas un objet de la classe parent)
2. Appeler les membres de la classe parent
Le constructeur statique ne peut être exécuté que dans les circonstances suivantes :
* Lors de la création d'une instance de classe contenant un constructeur statique
* Accès au constructeur statique d'une classe contenant un constructeur statique Lorsque les membres
chaîne et object sont des types de référence simples, les tableaux sont des types de référence implicites, chaque classe créée est un type de référence
Le compilateur ne permet pas aux classes dérivées d'être plus accessibles que le type de base.
La spécification de l'interface doit être placée après l'héritage de la classe de base et séparée par des virgules.
system.Object contient :
Equals() bool
ToString() String : Renvoie la chaîne correspondant à l'instance de l'objet
Objet MemberwiseClone() : Crée une nouvelle instance d'objet et copie les membres pour copier l'objet
GetType() System.Type : Renvoie le type d'objet (opérateur typeof : peut convertir le nom de la classe en un objet System.Type)
GetHashCode() int : Renvoie une valeur représentant l'état de l'objet sous forme compressée
Initialiseur de constructeur, qui place le code après les deux points de la définition de la méthode. Par exemple, vous pouvez spécifier le constructeur de classe de base à utiliser dans la définition du constructeur de la classe dérivée.
Utilisez le mot-clé base() pour spécifier le processus d'instanciation .NET. Utilisez le constructeur avec les paramètres spécifiés dans la classe de base
Définissez une classe qui ne peut pas être créée : définissez-la comme une classe statique, ou. make tous ses constructeurs Les fonctions sont définies comme privées.
Les classes qui ne peuvent pas être créées peuvent être utilisées via les membres statiques qu'elles possèdent.
Pour la collection ArrayList, utilisez la méthode Add() de l'objet pour ajouter de nouveaux éléments ;
itération du rendement
La boxe consiste à convertir le type de valeur en système. Type d'objet, ou conversion Est un type d'interface implémenté par un type valeur. Le déballage est le contraire.
Fonction : Elle permet l'utilisation de types valeur dans les collections dont le type d'élément est objet. Deuxièmement, il existe un mécanisme interne qui permet d'appeler la méthode objet sur le type valeur.
est l'opérateur :
Ne peut pas surcharger les opérateurs d'affectation, tels que +=, ni surcharger && et ||
IComparable est implémenté dans la classe de l'objet à comparer, et peut comparer cet objet avec un autre objet : Fournit CompareTo(), int, accepte un objet
IComparer est implémenté dans une classe distincte et peut comparer deux objets quelconques : Fournit Compare(), int, accepte deux objets
Class Comparer fournit l'interface ICompare L'implémentation par défaut : Comparer.Default.Compare (un, deux). Classe CaseInsensitiveComparer : insensible à la casse
déclare un type nullable : int ? nullableInt ; est l'abréviation de System.Nullable
opérateur de fusion nul ? Avec l'opérateur conditionnel vide ?. Vous pouvez définir une valeur par défaut lorsque le résultat est nul :
int?count=customer.order?.Count() 0;
De plus, une autre utilisation du conditionnel vide ? l’opérateur est un événement déclencheur.
Covariance, résistance à la variation :
Les paramètres de type générique sont définis comme covariance, ajoutez le mot-clé out, sinon, utilisez le mot-clé in pour la résistance à la variation
Podcast Chuanzhi :
1. Importez l'espace de noms
L'espace de noms est le "dossier" de la classe. Les classes sont des fichiers dans un « dossier ». Besoin d'importer un espace de noms
Ajouter une référence :
Si j'ai besoin d'accéder à une classe dans un autre projet dans un projet
— --->
2. Statique et non statique
Membres statiques : modifiés par statique
Membres d'instance : non modifiés par statique
Les membres statiques sont chargés en mémoire avant les membres de l'instance Uniquement lorsqu'un objet est créé, Instance. membres.
Seuls les membres statiques peuvent exister dans une classe statique
Appel :
Appel du membre statique :
Nom du membre statique
Appel du membre de l'instance :
Nom de l'instance ; ( L'instance est notre objet)
Quand utiliser le statique ?
---->En tant que classe d'outils, comme toutes les méthodes d'extension ! Tous nécessitent des
statiques ----> Les ressources sont partagées tout au long du projet. Tout simplement parce qu'il s'agit de ressources partagées, les membres statiques doivent attendre que l'ensemble du projet soit terminé
avant que les ressources ne soient libérées.
Les membres statiques doivent être utilisés le moins possible dans nos projets.
L'héritage est le processus de création d'objets.
3. Modèle de conception
----> Modèle de conception Singleton
Tout au long du programme, nous devons nous assurer que l'objet doit être unique.
Mise en œuvre :
à ---->La troisième étape : déclarer une fonction statique et renvoyer un objet globalement unique
Exemple :
🎜> InitializeComponent();
Objet
public static Form2 ; 🎜>} ---- & gt; : Prenez toutes les sous-classes comme classe parent pour voir
Pratique :
Rappel aux utilisateurs de saisir deux nombres séparément : Saisissez l'opérateur : Revenez à une classe parent calculée, et appelez la méthode pour obtenir les résultats.
Ajouter Sub Cheng Chu Enchère pour acheter un terrain
4. Arrangement L'équipe de construction a commencé la construction
5. Vendre la propriété
Les modèles de conception sont utilisés pour résoudre des problèmes spécifiques.
4. Bibliothèque de classes
Fichier .dll, nous utilisons la bibliothèque de classes pour nous aider à encapsuler certaines fonctions courantes
5 Type de valeur et type de référence
Type de valeur : int double char bool decimal struct enum Type de référence : délégué d'interface de classe personnalisée de tableau de chaînes
Les valeurs de type valeur sont stockées sur la pile de mémoire et les valeurs de type référence sont stockées dans le tas.
Le stockage des données sur la pile est plus efficace que sur le tas.
Transmission de valeur : transmettez le type de valeur en tant que paramètre et transmettez la valeur elle-même.
Remarque :
ref peut modifier le transfert de valeur en transfert de référence.
Passer par référence : transmettez une valeur de type référence en tant que paramètre, et ce qui est transmis est une référence.
6. Apprentissage des chaînes
Caractéristiques importantes :
Immuabilité, peu importe les opérations que nous effectuons sur la chaîne, une nouvelle instance sera générée dans la mémoire.
Pool résident
Nous pouvons considérer une chaîne comme un tableau en lecture seule de type char.
GC : Garbage Collection, de temps en temps, toute la mémoire sera analysée pour savoir si un espace n'est pas pointé vers. puis détruisez-le immédiatement.
<.> 1. Expliquer la non-variabilité des chaînes 2. Les caractéristiques du « pool de dépôt temporaire » de la constante de chaîne.
String string, une chaîne peut être considérée comme un tableau de caractères, immuable (modifiez les éléments de la chaîne via une boucle for, échec !).
Attributs
Longueur //Obtient le nombre de caractères dans la chaîne. "aA我你他"→5
Méthode
IsNullOrEmpty() Méthode statique, jugée comme nulle ou "" (méthode statique)
ToCharArray() Convertir la chaîne en char[]
ToLower( ) Minuscule , doit recevoir une valeur de retour. (Parce que : la chaîne est immuable);
ToUpper() majuscule.
Equals() Compare si deux chaînes (adresse/état de l'objet et == compare les références d'objet) sont identiques. En ignorant la comparaison du cas, stringCompatch.
// Pour le type String, qu'il s'agisse d'un nombre égal ou d'une comparaison Equals avec la valeur elle-même.
//Equals compare les adresses par défaut, mais si nous utilisons Equals dans une classe que nous définissons, nous réécrirons Equals afin qu'il puisse être comparé en fonction de nos propres besoins Les données correspondantes renvoient -1 //Question d'entretien : Comptez le nombre de fois où « Tiananmen » apparaît dans une chaîne.
LastIndexof () Si les données correspondantes ne sont pas trouvées, retournez -1
Substring () // 2 charges lourdes, interceptez la chaîne.
Split() // Divisez la chaîne.
Join() Méthode statique
Replace()
Fusionner les objets et les initialiseurs de collection (adaptés à une utilisation avec la technologie LINQ) (le compilateur appelle la méthode Add() de la collection pour chaque élément fourni dans l'initialiseur de collection)
Si vous souhaitez modifier les attributs dans la valeur de l'objet de stockage de données, vous ne pouvez pas utiliser de types anonymes (car il est défini comme un attribut en lecture seule)
Performance : Liste des paramètres entre parenthèses => Instruction C#/{Plusieurs lignes de code + si toujours Il n'est pas un délégué vide, vous devez ajouter un retour🎜> Le framework LINQ contient une classe générique qui peut être utilisée pour encapsuler des expressions Lambda. Une façon d'utiliser cette classe consiste à extraire l'expression Lambda écrite en C# et à la convertir en. la méthode d'extension du script SQL
correspondante Aggregate() signifie appliquer une fonction accumulateur à chaque paire d'éléments du début à la fin de la collection.
Chuanzhi Podcast Basic Strengthening 3 :
1. StringBuilder : un outil permettant d'effectuer un grand nombre d'opérations sur les chaînes. Les objets chaîne sont immuables.
Convertir StringBuilder en String en utilisant ToString();
C'est juste un outil pour épisser des chaînes, la plupart d'entre elles seront également converties en String
*StringBuilder sb=new StringBuilder(); .Append( );//Append string
*sb.ToString();//ToString("x2"), ce qui signifie une conversion en hexadécimal et comporte deux chiffres.
*sb.Insert();
*sb.Replace();
Utilisez un programme pour fusionner des tableaux en HTML : il n'y a pas de DocumentText pour les applications de formulaire dans WPF, vous ne pouvez utiliser que webBrow.NavigateToString( sb. ToString());
2. out : Le paramètre out se concentre sur le retour de plusieurs valeursdans la fonction ; l'exigence du paramètre doit se voir attribuer une valeur à l'intérieur de la méthode
3. Paramètre Ref : Le Le paramètre ref se concentre sur l'apport d'une valeur. Apportez des modifications à la fonction australienne, puis faites ressortir les valeurs modifiées. Le paramètre REF n'a pas besoin d'être attribué à l'intérieur de la fonction. La fonction doit être affectée au paramètre REF
4,
5, la collection de collection :
collection non générique :
ArrayList
Hashtable
Type de génération Collection :
Liste
Capcity : Le nombre d'éléments pouvant être inclus dans la collection (valeur initiale est 4, doublé à chaque fois)
Count : Obtenez l'ensemble Le nombre d'éléments réellement inclus dans
Add() : Ajoutez un seul élément
AddRange() : Ajoutez une collection
Insert() : Insérer un élément
InsertRange() : Insérer une collection
Remove() : Supprimer l'élément spécifié
RemoveAll() : À l'intérieur se trouve une expression lambda, telle que list.RemoveAll(n => n > 3) Toutes les données supérieures à 3 seront supprimées
RemoveAt() : Supprimer les éléments en fonction des indices
utiliser using ‐ with ‐ ‐ ‐ ‐ ‐ ‐ utiliser utiliser ' ' s utiliser ' s ‐ ' s ' s ' s ' s ' s ' s ' s ' s ' s ' s ‐ Dictionnaire< ;Tkey,Tvalue>
6. Emballage et déballage :
Emballage : type de valeur--->Type de référence
Unboxing : type de référence--->Type de valeur
Quel type de boîte est utilisé lors de l'emballage et quel type est utilisé lors du déballage.
7. Format d'encodage :
Enregistrez la chaîne au format binaire.
ascii 256
6000 GB2312
GBK GB18030
ISO
Raison des caractères tronqués : l'encodage utilisé lors de l'enregistrement de ce fichier n'est pas cohérent avec le format d'encodage utilisé lors de l'ouverture de ce fichier.
Fichier texte : faites-le glisser dans txt et vous pourrez toujours comprendre qu'il s'agit d'un fichier texte.
.txt .html .ini .xml
Opérations de base du fichier : fichiers d'exploitation
Exist() : déterminer si le fichier spécifié existe
Create() : créer
Move() : couper Couper
Copier() : Copier
Supprimer() : Supprimer
Le format d'encodage par défaut utilisé par ReadAllLines() ReadAllText() est utf-8
Répertoire : L'opération est le dossier
CreateDirectory : Créer un nouveau dossier
’ Déplacer : supprimer le répertoire .getFiles (@"E: DOWNLOAD", "*.avi") Obtenez tout Fichier .avi
GetDirectories () pour obtenir tous les dossiers du répertoire spécifié
Récupère uniquement tout le premier répertoire actuel dans le premier répertoire actuel Dossier
Classe principale d'expression régulière : Regex
est un modèle. Nous pouvons utiliser ce modèle pour trouver les données souhaitées dans un ensemble de chaînes.
Remarque : les expressions régulières fonctionnent sur des chaînes.
Composition :
Qualificateurs, métacaractères, expressions couramment utilisées
Déterminer s'il faut correspondre : Regex.IsMatch("String", "Regular Expression");
Extraction de chaîne : Regex Match("String" , "Expression régulière de la chaîne à extraire"); "Regular", "Remplacer le contenu");
.+? Correspond à un grand nombre de caractères
(?
Mode gourmand :
"1111.11. 11. 11111. "
Cupidité : .+. Faites correspondre un maximum de correspondances
Non gourmand : .+ ? . Faites correspondre le moins possible, 1
Style : définissez certaines propriétés à appliquer au contrôle par lots
Modèle : définissez l'apparence du contrôle en fonction de celui-ci
Déclencheur :
Pour définir les propriétés surveillé par l'objet Trigger, vous devez utiliser la propriété Trigger.Property
Pour définir quand l'objet Trigger est activé, vous devez définir la propriété Trigger.Value
Pour définir les actions déclenchées par le Trigger, vous devez définir la Propriété Trigger.Setters à Setter Une collection d'objets
Animation : Créés via des storyboards, les objets du storyboard sont inclus dans le dictionnaire de ressources et doivent être identifiés via l'attribut x:Key
Timeline sans images clés : DoubleAnimation, PointAnimation et ColorAnimation
dépend des attributs : entrez deux fois la touche propdp+tab pour insérer le modèle d'attribut
XML : langage de balisage extensible
Différence avec HTML : les éléments en XML doivent être fermés ! Les attributs des éléments en XML doivent être cités
Spécifications de syntaxe : Tag, Nest et Attributs.
L'étiquette (c'est-à-dire l'élément) doit être fermée, la valeur de l'attribut doit être entourée de "", et les étiquettes peuvent être imbriquées les unes dans les autres.
En XML, un nœud (Node) contient un élément (Element).
Sensible à la casse
Créer du XML : modèle d'objet de document DOM
XmlDocument doc=new XMLDocument();
🎜> .RemoveAll(); Oui, supprimez tous les sous-nœuds sous le nœud racine
Suppression de sous-nœuds : ITems.RemoveChild(xn);
Suppression des valeurs d'attribut d'un nœud : xn.Attributes.RemoveNamedItem("Count") ;
ctrl+K et S/X, raccourci touches pour insérer des segments de code/code extérieur, comme #region
Délégué de délégation : utiliser un délégué pour passer une fonction en paramètre
DelSayHi del = SayHiChinese;//new DelSayHi(SayHiChinese);
Comparaison : la délégation n'est pas sécurisée L'événement lui-même est un délégué sûr
Définissez l'événement :
public délégué void delTest(); //Un délégué est requis lors de l'enregistrement de l'événement
public event delTest eventTest //Pas de parenthèses; obligatoire
Événement d'inscription :
eventTest += new delTest(method2);
Résumé :
Rôle de la délégation :
Espace réservé, sinon Lorsque vous connaissez le code spécifique de la méthode à exécuter dans le futur, vous pouvez d'abord utiliser une variable déléguée pour remplacer l'appel de méthode (la valeur de retour et la liste des paramètres du délégué doivent être déterminées)
La fonction de l'événement :
La fonction de l'événement est la même que celle de la variable déléguée. Elle est simplement plus limitée fonctionnellement que les variables déléguées.
Par exemple : 1. Les méthodes ne peuvent être liées que via += ou -=, 2. Les événements ne peuvent être appelés (déclenchés) qu'au sein de la classe.
Avantages des assemblys :
Seuls les assemblys nécessaires sont référencés dans le programme, réduisant ainsi la taille du programme ;
Les assemblys peuvent encapsuler du code et fournir uniquement les interfaces d'accès nécessaires.
Chapitre 16 :
Cloud : juste une grande quantité de matériel informatique commercial exécuté dans un centre de données. Ce centre de données peut exécuter des programmes et stocker de grandes quantités de données.
Élastique, c'est-à-dire la capacité d'expansion dynamique vers le haut (comme l'augmentation de la mémoire et du processeur) et/ou la capacité d'expansion dynamique vers l'extérieur (en augmentant le nombre d'instances de serveur virtuel)
1. Infrastructure As a Service (IaaS) : la responsabilité commence par le système d'exploitation et monte.
2. Platform as a Service (PaaS) : la valeur est responsable des programmes et de leurs dépendances qui s'exécutent sur le système d'exploitation sélectionné.
3. Software as a Service (SaaS) : programme logiciel ou service utilisé sur un appareil accessible via Internet.
Recommandations associées :
[Tutoriel c#] Types de données C#
Examinez C, C++, C#, Java via des variables locales statiques , Caractéristiques de PHP
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!