mirror of
https://github.com/adambard/learnxinyminutes-docs.git
synced 2024-12-24 10:01:38 +00:00
A bunch of typo fix
This commit is contained in:
parent
4803b3aa26
commit
5c19094fb0
@ -109,7 +109,7 @@ namespace Learning
|
|||||||
// Char - Un unique caractère Unicode sur 16 bits
|
// Char - Un unique caractère Unicode sur 16 bits
|
||||||
char fooChar = 'A';
|
char fooChar = 'A';
|
||||||
|
|
||||||
// String -- contrairement au types précédents qui sont des types valeurs,
|
// String -- contrairement aux types précédents qui sont des types valeurs,
|
||||||
// string est un type référence. Il peut donc avoir la valeur null
|
// string est un type référence. Il peut donc avoir la valeur null
|
||||||
string fooString = "\"échappement\" de guillemets et ajout de \n (nouvelle ligne) et de \t (tabulation)";
|
string fooString = "\"échappement\" de guillemets et ajout de \n (nouvelle ligne) et de \t (tabulation)";
|
||||||
Console.WriteLine(fooString);
|
Console.WriteLine(fooString);
|
||||||
@ -152,7 +152,7 @@ sur une nouvelle ligne! ""Wow!"", quel style";
|
|||||||
|
|
||||||
// Indexer un tableau - Accéder à un élément
|
// Indexer un tableau - Accéder à un élément
|
||||||
Console.WriteLine("intArray à 0: " + intArray[0]);
|
Console.WriteLine("intArray à 0: " + intArray[0]);
|
||||||
// Les tableaux sont muable.
|
// Les tableaux sont muables.
|
||||||
intArray[1] = 1;
|
intArray[1] = 1;
|
||||||
|
|
||||||
// Listes
|
// Listes
|
||||||
@ -268,7 +268,7 @@ sur une nouvelle ligne! ""Wow!"", quel style";
|
|||||||
// Structure : foreach(<type_iterateur> <nom_iterateur> in <enumerable>)
|
// Structure : foreach(<type_iterateur> <nom_iterateur> in <enumerable>)
|
||||||
// Cette boucle est utilisable sur des objets implémentant IEnumerable ou IEnumerable<T>
|
// Cette boucle est utilisable sur des objets implémentant IEnumerable ou IEnumerable<T>
|
||||||
// Toutes les collections du framework .NET (Tableaux, Listes, ...) implémentent ces interfaces.
|
// Toutes les collections du framework .NET (Tableaux, Listes, ...) implémentent ces interfaces.
|
||||||
// (Notez que dans l'exemple suivant .ToCharArray() peut être omit car
|
// (Notez que dans l'exemple suivant .ToCharArray() peut être omit car,
|
||||||
// string implémente IEnumerable)
|
// string implémente IEnumerable)
|
||||||
foreach (char character in "Hello World".ToCharArray())
|
foreach (char character in "Hello World".ToCharArray())
|
||||||
{
|
{
|
||||||
@ -276,9 +276,9 @@ sur une nouvelle ligne! ""Wow!"", quel style";
|
|||||||
}
|
}
|
||||||
|
|
||||||
// La structure Switch Case
|
// La structure Switch Case
|
||||||
// Un switch fonctionne avec les types : byte, short, char, et int.
|
// Un switch fonctionne avec les types : byte, short, char et int.
|
||||||
// Les enums sont aussi supportés ainsi que les strings et quelques
|
// Les enums sont aussi supportés ainsi que les strings et quelques
|
||||||
// classes spéciales basées sur les types primitifs : Character, Byte, Short, et Integer.
|
// classes spéciales basées sur les types primitifs : Character, Byte, Short et Integer.
|
||||||
int mois = 3;
|
int mois = 3;
|
||||||
string moisString;
|
string moisString;
|
||||||
switch (mois)
|
switch (mois)
|
||||||
@ -293,7 +293,7 @@ sur une nouvelle ligne! ""Wow!"", quel style";
|
|||||||
moisString = "Mars";
|
moisString = "Mars";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// Vous pouvez assigné plus d'un 'case' à une action
|
// Vous pouvez assigner plus d'un 'case' à une action
|
||||||
// Mais vous ne pouvez pas ajouter une action sans 'break' avant un 'case'
|
// Mais vous ne pouvez pas ajouter une action sans 'break' avant un 'case'
|
||||||
// (pour ce faire, il faudrait ajouter explicitement un 'goto case x')
|
// (pour ce faire, il faudrait ajouter explicitement un 'goto case x')
|
||||||
case 6:
|
case 6:
|
||||||
@ -307,10 +307,10 @@ sur une nouvelle ligne! ""Wow!"", quel style";
|
|||||||
}
|
}
|
||||||
|
|
||||||
///////////////////////////////////////
|
///////////////////////////////////////
|
||||||
// Convertion de type de donnée et transtypage
|
// conversion de type de donnée et transtypage
|
||||||
///////////////////////////////////////
|
///////////////////////////////////////
|
||||||
|
|
||||||
// Convertion de string vers int
|
// conversion de string vers int
|
||||||
// lève une exception en cas d'erreur
|
// lève une exception en cas d'erreur
|
||||||
int.Parse("123"); //retourne la valeur entière de "123"
|
int.Parse("123"); //retourne la valeur entière de "123"
|
||||||
|
|
||||||
@ -320,8 +320,8 @@ sur une nouvelle ligne! ""Wow!"", quel style";
|
|||||||
if (int.TryParse("123", out tryInt)) // La fonction retourne un booléen
|
if (int.TryParse("123", out tryInt)) // La fonction retourne un booléen
|
||||||
Console.WriteLine(tryInt); // => 123
|
Console.WriteLine(tryInt); // => 123
|
||||||
|
|
||||||
// Convertion d'un entier vers une string
|
// conversion d'un entier vers une string
|
||||||
// La classe Convert possède plusieur méthodes pour faciliter la convertion
|
// La classe Convert possède plusieurs méthodes pour faciliter la conversion
|
||||||
Convert.ToString(123);
|
Convert.ToString(123);
|
||||||
// ou
|
// ou
|
||||||
tryInt.ToString();
|
tryInt.ToString();
|
||||||
@ -399,7 +399,7 @@ sur une nouvelle ligne! ""Wow!"", quel style";
|
|||||||
// Vous pouvez limiter les types autorisés
|
// Vous pouvez limiter les types autorisés
|
||||||
public static void IterateAndPrint<T>(T toPrint) where T: IEnumerable<int>
|
public static void IterateAndPrint<T>(T toPrint) where T: IEnumerable<int>
|
||||||
{
|
{
|
||||||
// Nous somme sûr de pouvoir itérer, car T implémente IEnumerable<int>
|
// Nous sommes sûrs de pouvoir itérer, car T implémente IEnumerable<int>
|
||||||
foreach (var item in toPrint)
|
foreach (var item in toPrint)
|
||||||
// Item sera de type int
|
// Item sera de type int
|
||||||
Console.WriteLine(item.ToString());
|
Console.WriteLine(item.ToString());
|
||||||
@ -417,14 +417,14 @@ sur une nouvelle ligne! ""Wow!"", quel style";
|
|||||||
i.Print(); // Défini plus bas
|
i.Print(); // Défini plus bas
|
||||||
|
|
||||||
// TYPES NULLABLE - idéal pour les interactions avec une base de données ou pour les valeurs de retour
|
// TYPES NULLABLE - idéal pour les interactions avec une base de données ou pour les valeurs de retour
|
||||||
// Tous les types valeurs peuvent être rendu nullable en les suffixant par '?'
|
// Tous les types valeurs peuvent être rendus nullable en les suffixant par '?'
|
||||||
// <type>? <nom> = <value>
|
// <type>? <nom> = <value>
|
||||||
int? nullable = null; // raccourci pour Nullable<int>
|
int? nullable = null; // raccourci pour Nullable<int>
|
||||||
Console.WriteLine("Nullable variable: " + nullable);
|
Console.WriteLine("Nullable variable: " + nullable);
|
||||||
bool hasValue = nullable.HasValue; // retourne vrai si la valeur n'est pas null
|
bool hasValue = nullable.HasValue; // retourne vrai si la valeur n'est pas null
|
||||||
|
|
||||||
// ?? est un sucre de syntaxe pour spécifier une valeur par défaut
|
// ?? est un sucre de syntaxe pour spécifier une valeur par défaut
|
||||||
// au cas ou une autre valleur serait nulle
|
// au cas ou une autre valeur serait nulle
|
||||||
int notNullable = nullable ?? 0; // 0
|
int notNullable = nullable ?? 0; // 0
|
||||||
|
|
||||||
// VARIABLES IMPLICITEMENT TYPÉE - vous pouvez laisser le compilateur deviner le type d'une variable
|
// VARIABLES IMPLICITEMENT TYPÉE - vous pouvez laisser le compilateur deviner le type d'une variable
|
||||||
@ -445,7 +445,7 @@ sur une nouvelle ligne! ""Wow!"", quel style";
|
|||||||
Func<int, int> square = (x) => x * x; // Le dernier élément est la valeur de retour
|
Func<int, int> square = (x) => x * x; // Le dernier élément est la valeur de retour
|
||||||
Console.WriteLine(square(3)); // => 9
|
Console.WriteLine(square(3)); // => 9
|
||||||
|
|
||||||
// BIBLIOTHÈQUE DE TÂCHES PARALLÈLE (TPL)
|
// BIBLIOTHÈQUE DE TÂCHES PARALLÈLES (TPL)
|
||||||
// http://msdn.microsoft.com/fr-fr/library/dd460717.aspx
|
// http://msdn.microsoft.com/fr-fr/library/dd460717.aspx
|
||||||
var websites = new string[] {
|
var websites = new string[] {
|
||||||
"http://www.google.com", "http://www.reddit.com",
|
"http://www.google.com", "http://www.reddit.com",
|
||||||
@ -453,8 +453,8 @@ sur une nouvelle ligne! ""Wow!"", quel style";
|
|||||||
};
|
};
|
||||||
var responses = new Dictionary<string, string>();
|
var responses = new Dictionary<string, string>();
|
||||||
|
|
||||||
// L'exemple suivant executera chaque requête dans un thread séparé,
|
// L'exemple suivant exécutera chaque requête dans un thread séparé,
|
||||||
// et attendera la fin de chacun d'entre eux avant de continuer
|
// et attendra la fin de chacun d'entre eux avant de continuer
|
||||||
Parallel.ForEach(websites,
|
Parallel.ForEach(websites,
|
||||||
new ParallelOptions() {MaxDegreeOfParallelism = 3}, // maximum de 3 threads
|
new ParallelOptions() {MaxDegreeOfParallelism = 3}, // maximum de 3 threads
|
||||||
website =>
|
website =>
|
||||||
@ -494,7 +494,7 @@ sur une nouvelle ligne! ""Wow!"", quel style";
|
|||||||
|
|
||||||
// Creation d'une liste d'objet anonymes basés sur des paramètres de la classe Bike
|
// Creation d'une liste d'objet anonymes basés sur des paramètres de la classe Bike
|
||||||
var bikeSummaries = bikes.Select(b=>new { Name = b.Name, IsAwesome = !b.IsBroken && b.HasTassles });
|
var bikeSummaries = bikes.Select(b=>new { Name = b.Name, IsAwesome = !b.IsBroken && b.HasTassles });
|
||||||
// Le compilateur peut inférer le type de ces objets annonymes, permettant à certain IDE d'effectuer
|
// Le compilateur peut inférer le type de ces objets anonymes, permettant à certain IDE d'effectuer
|
||||||
// des autos-complétion.
|
// des autos-complétion.
|
||||||
foreach (var bikeSummary in bikeSummaries.Where(b => b.IsAwesome))
|
foreach (var bikeSummary in bikeSummaries.Where(b => b.IsAwesome))
|
||||||
Console.WriteLine(bikeSummary.Name);
|
Console.WriteLine(bikeSummary.Name);
|
||||||
@ -509,12 +509,12 @@ sur une nouvelle ligne! ""Wow!"", quel style";
|
|||||||
|
|
||||||
|
|
||||||
// LINQ - lie une source de donnée à des objets IQueryable<T>
|
// LINQ - lie une source de donnée à des objets IQueryable<T>
|
||||||
// ex: LindToSql => liaison avec une base de donnée, LinqToXml => liaison avec un document xml
|
// ex: LindToSql => liaison avec une base de données, LinqToXml => liaison avec un document xml
|
||||||
var db = new BikeRespository();
|
var db = new BikeRespository();
|
||||||
|
|
||||||
// l'execution est décalée, ce qui est préférable quand on travail sur une base données
|
// l'exécution est décalée, ce qui est préférable quand on travaille sur une base données
|
||||||
var fitler = db.Bikes.Where(b => b.HasTassles); // pas de requête exécutée
|
var fitler = db.Bikes.Where(b => b.HasTassles); // pas de requête exécutée
|
||||||
if (42 > 6) // Vous pouvez continuez à affiner la recherche
|
if (42 > 6) // Vous pouvez continuer à affiner la recherche
|
||||||
fitler = fitler.Where(b => b.IsBroken); // pas de requête exécutée
|
fitler = fitler.Where(b => b.IsBroken); // pas de requête exécutée
|
||||||
|
|
||||||
var query = fitler
|
var query = fitler
|
||||||
@ -530,7 +530,7 @@ sur une nouvelle ligne! ""Wow!"", quel style";
|
|||||||
|
|
||||||
} // Fin de la classe LearnCSharp
|
} // Fin de la classe LearnCSharp
|
||||||
|
|
||||||
// Il est possible d'inclure plusieur classes dans un fichier .cs
|
// Il est possible d'inclure plusieurs classes dans un fichier .cs
|
||||||
|
|
||||||
public static class Extensions
|
public static class Extensions
|
||||||
{
|
{
|
||||||
@ -556,7 +556,7 @@ sur une nouvelle ligne! ""Wow!"", quel style";
|
|||||||
{
|
{
|
||||||
return _cadence;
|
return _cadence;
|
||||||
}
|
}
|
||||||
set // set - définit une méthode pour affecté une valeur à la propriété
|
set // set - définit une méthode pour affecter une valeur à la propriété
|
||||||
{
|
{
|
||||||
_cadence = value; // 'value' est la valeur passée en argument au setteur
|
_cadence = value; // 'value' est la valeur passée en argument au setteur
|
||||||
}
|
}
|
||||||
@ -583,7 +583,7 @@ sur une nouvelle ligne! ""Wow!"", quel style";
|
|||||||
|
|
||||||
// Enum est un type valeur formé par un ensemble de constantes nommées
|
// Enum est un type valeur formé par un ensemble de constantes nommées
|
||||||
// C'est simplement une manière de mettre un nom sur une valeur (int par défaut).
|
// C'est simplement une manière de mettre un nom sur une valeur (int par défaut).
|
||||||
// Les types compatibles pour un enum sont : byte, sbyte, short, ushort, int, uint, long, et ulong.
|
// Les types compatibles pour un enum sont : byte, sbyte, short, ushort, int, uint, long et ulong.
|
||||||
// Un enum ne peut pas contenir deux fois la même valeur
|
// Un enum ne peut pas contenir deux fois la même valeur
|
||||||
public enum BikeBrand
|
public enum BikeBrand
|
||||||
{
|
{
|
||||||
@ -606,7 +606,7 @@ sur une nouvelle ligne! ""Wow!"", quel style";
|
|||||||
// Elles ne peuvent être assignées que lors de leur déclaration ou dans un constructeur
|
// Elles ne peuvent être assignées que lors de leur déclaration ou dans un constructeur
|
||||||
readonly bool _hasCardsInSpokes = false; // variable en lecture et privée
|
readonly bool _hasCardsInSpokes = false; // variable en lecture et privée
|
||||||
|
|
||||||
// Les contructeurs sont un moyen de créer des objets
|
// Les constructeurs sont un moyen de créer des objets
|
||||||
// Voici un constructeur par défaut (pas d'arguments)
|
// Voici un constructeur par défaut (pas d'arguments)
|
||||||
public Bicycle()
|
public Bicycle()
|
||||||
{
|
{
|
||||||
@ -618,7 +618,7 @@ sur une nouvelle ligne! ""Wow!"", quel style";
|
|||||||
BicyclesCreated++;
|
BicyclesCreated++;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Voici un constructeur spécifique (qui prends des arguments)
|
// Voici un constructeur spécifique (qui prend des arguments)
|
||||||
public Bicycle(int startCadence, int startSpeed, int startGear,
|
public Bicycle(int startCadence, int startSpeed, int startGear,
|
||||||
string name, bool hasCardsInSpokes, BikeBrand brand)
|
string name, bool hasCardsInSpokes, BikeBrand brand)
|
||||||
: base() // possibilité d'appeler le constructeur de la classe mère (ici Object)
|
: base() // possibilité d'appeler le constructeur de la classe mère (ici Object)
|
||||||
@ -631,7 +631,7 @@ sur une nouvelle ligne! ""Wow!"", quel style";
|
|||||||
Brand = brand;
|
Brand = brand;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Les constructeur peuvent s'enchaîner
|
// Les constructeurs peuvent s'enchaîner
|
||||||
public Bicycle(int startCadence, int startSpeed, BikeBrand brand) :
|
public Bicycle(int startCadence, int startSpeed, BikeBrand brand) :
|
||||||
this(startCadence, startSpeed, 0, "big wheels", true, brand)
|
this(startCadence, startSpeed, 0, "big wheels", true, brand)
|
||||||
{
|
{
|
||||||
@ -640,10 +640,10 @@ sur une nouvelle ligne! ""Wow!"", quel style";
|
|||||||
// Syntaxe de méthode:
|
// Syntaxe de méthode:
|
||||||
// <public/private/protected> <type de retour> <nom de methode>(<args>)
|
// <public/private/protected> <type de retour> <nom de methode>(<args>)
|
||||||
|
|
||||||
// Les classes peuvent implémenter des accesseurs pour leur champs
|
// Les classes peuvent implémenter des accesseurs pour leurs champs
|
||||||
// ou implémenter des propriétés (c'est la méthode dominante en C#)
|
// ou implémenter des propriétés (c'est la méthode dominante en C#)
|
||||||
|
|
||||||
// Les paramètres de méthodes peuvent avoir des valeur par défaut
|
// Les paramètres de méthodes peuvent avoir des valeurs par défaut
|
||||||
// Dans ce cas, la méthode peut être appelée sans arguments
|
// Dans ce cas, la méthode peut être appelée sans arguments
|
||||||
public void SpeedUp(int increment = 1)
|
public void SpeedUp(int increment = 1)
|
||||||
{
|
{
|
||||||
@ -689,7 +689,7 @@ sur une nouvelle ligne! ""Wow!"", quel style";
|
|||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Les méthodes peuvent aussi être statiques. Utile pour les méthode d'aide.
|
// Les méthodes peuvent aussi être statiques. Utile pour les méthodes d'aide.
|
||||||
public static bool DidWeCreateEnoughBycles()
|
public static bool DidWeCreateEnoughBycles()
|
||||||
{
|
{
|
||||||
// A l'intérieur d'une méthode statique on ne peut que référencer des membres statiques !
|
// A l'intérieur d'une méthode statique on ne peut que référencer des membres statiques !
|
||||||
@ -731,7 +731,7 @@ sur une nouvelle ligne! ""Wow!"", quel style";
|
|||||||
// Les interfaces contiennent uniquement la signature de leurs membres, sans implémentation.
|
// Les interfaces contiennent uniquement la signature de leurs membres, sans implémentation.
|
||||||
interface IJumpable
|
interface IJumpable
|
||||||
{
|
{
|
||||||
void Jump(int meters); // Tout les membres d'interface sont publique par défaut
|
void Jump(int meters); // Tous les membres d'interface sont publics par défaut
|
||||||
}
|
}
|
||||||
|
|
||||||
interface IBreakable
|
interface IBreakable
|
||||||
@ -740,7 +740,7 @@ sur une nouvelle ligne! ""Wow!"", quel style";
|
|||||||
// des méthodes et des évènements
|
// des méthodes et des évènements
|
||||||
}
|
}
|
||||||
|
|
||||||
// Une classe ne peut hériter que d'une seule autre classe, mais peut implémenter plusieur interfaces
|
// Une classe ne peut hériter que d'une seule autre classe, mais peut implémenter plusieurs interfaces
|
||||||
class MountainBike : Bicycle, IJumpable, IBreakable
|
class MountainBike : Bicycle, IJumpable, IBreakable
|
||||||
{
|
{
|
||||||
int damage = 0;
|
int damage = 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user