[{"data":1,"prerenderedAt":1058},["ShallowReactive",2],{"page-\u002Fcsharp\u002Fpremier-programme":3,"pieces-csharp":1016,"autour-\u002Fcsharp\u002Fpremier-programme":1041,"prerequis-\u002Fcsharp\u002Fpremier-programme":1046,"plan-csharp":1047},{"id":4,"title":5,"body":6,"description":983,"extension":984,"ligne":173,"meta":985,"motsCles":986,"navigation":318,"niveau":988,"path":989,"prerequis":990,"ressources":991,"seo":1004,"sources":1005,"stem":1014,"__hash__":1015},"docs\u002Fcsharp\u002F01.premier-programme.md","Premier programme C#",{"type":7,"value":8,"toc":971},"minimark",[9,14,32,36,48,64,67,71,74,121,124,151,158,162,169,201,208,219,229,233,244,340,343,422,432,436,443,480,485,488,522,526,541,655,658,698,704,717,721,724,808,828,832,838,899,913,917,967],[10,11,13],"h2",{"id":12},"ce-que-tu-vas-apprendre","Ce que tu vas apprendre",[15,16,17,21,29],"ul",{},[18,19,20],"li",{},"Ce que sont C# et .NET, et comment créer un projet console.",[18,22,23,24,28],{},"Lancer un programme avec ",[25,26,27],"code",{},"dotnet run",".",[18,30,31],{},"Déclarer des variables typées et afficher du texte avec des chaînes interpolées.",[10,33,35],{"id":34},"c-et-net","C# et .NET",[37,38,39,43,44,47],"p",{},[40,41,42],"strong",{},"C#"," est un langage de programmation créé par Microsoft. ",[40,45,46],{},".NET"," est la plateforme qui exécute les programmes C# et qui fournit une grande bibliothèque d'outils prêts à l'emploi.",[37,49,50,51,54,55,59,60,63],{},"Pour programmer, tu installes le ",[40,52,53],{},"SDK .NET"," (",[56,57,58],"em",{},"Software Development Kit",") : le compilateur, la commande ",[25,61,62],{},"dotnet"," et la bibliothèque. La version à longue durée de support (LTS) actuelle est .NET 10.",[37,65,66],{},"Le fil rouge de cette ligne est un petit site de recettes de cuisine. Tu commences par un programme qui affiche une recette.",[10,68,70],{"id":69},"créer-un-projet-console","Créer un projet console",[37,72,73],{},"Dans un terminal, tape ces trois commandes :",[75,76,81],"pre",{"className":77,"code":78,"language":79,"meta":80,"style":80},"language-bash shiki shiki-themes github-light-default github-dark-default github-dark-default","dotnet new console -o Recettes\ncd Recettes\ndotnet run\n","bash","",[25,82,83,105,113],{"__ignoreMap":80},[84,85,88,91,95,98,102],"span",{"class":86,"line":87},"line",1,[84,89,62],{"class":90},"sIXEE",[84,92,94],{"class":93},"shWOn"," new",[84,96,97],{"class":93}," console",[84,99,101],{"class":100},"s5iOY"," -o",[84,103,104],{"class":93}," Recettes\n",[84,106,108,111],{"class":86,"line":107},2,[84,109,110],{"class":100},"cd",[84,112,104],{"class":93},[84,114,116,118],{"class":86,"line":115},3,[84,117,62],{"class":90},[84,119,120],{"class":93}," run\n",[37,122,123],{},"Voici ce que fait chaque commande :",[125,126,127,140,146],"ol",{},[18,128,129,132,133,136,137,28],{},[25,130,131],{},"dotnet new console -o Recettes"," crée un projet d'",[40,134,135],{},"application console"," (un programme qui s'exécute dans le terminal) dans un dossier ",[25,138,139],{},"Recettes",[18,141,142,145],{},[25,143,144],{},"cd Recettes"," entre dans ce dossier.",[18,147,148,150],{},[25,149,27],{}," compile le programme puis l'exécute.",[37,152,153,154,157],{},"Le terminal affiche ",[25,155,156],{},"Hello, World!",". Ton premier programme fonctionne.",[10,159,161],{"id":160},"lire-le-fichier-programcs","Lire le fichier Program.cs",[37,163,164,165,168],{},"Le projet contient un fichier ",[25,166,167],{},"Program.cs",". Voici le code généré :",[75,170,174],{"className":171,"code":172,"filename":167,"language":173,"meta":80,"style":80},"language-csharp shiki shiki-themes github-light-default github-dark-default github-dark-default","\u002F\u002F See https:\u002F\u002Faka.ms\u002Fnew-console-template for more information\nConsole.WriteLine(\"Hello, World!\");\n","csharp",[25,175,176,182],{"__ignoreMap":80},[84,177,178],{"class":86,"line":87},[84,179,181],{"class":180},"sd6ml","\u002F\u002F See https:\u002F\u002Faka.ms\u002Fnew-console-template for more information\n",[84,183,184,188,192,195,198],{"class":86,"line":107},[84,185,187],{"class":186},"scfrF","Console.",[84,189,191],{"class":190},"syCW7","WriteLine",[84,193,194],{"class":186},"(",[84,196,197],{"class":93},"\"Hello, World!\"",[84,199,200],{"class":186},");\n",[37,202,203,204,207],{},"Il n'y a qu'une ligne utile. Elle appelle ",[25,205,206],{},"Console.WriteLine",", qui écrit du texte dans le terminal puis passe à la ligne.",[37,209,210,211,214,215,218],{},"Ce style s'appelle les ",[40,212,213],{},"instructions de niveau supérieur"," : tu écris directement tes instructions, sans classe ni méthode ",[25,216,217],{},"Main"," autour. Chaque instruction se termine par un point-virgule.",[220,221,222],"note",{},[37,223,224,225,228],{},"Le fichier ",[25,226,227],{},"Recettes.csproj"," décrit le projet (nom, version de .NET visée). Tu n'as pas besoin de le modifier pour l'instant.",[10,230,232],{"id":231},"les-variables","Les variables",[37,234,235,236,239,240,243],{},"Une ",[40,237,238],{},"variable"," est une boîte nommée qui contient une valeur. En C#, chaque variable a un ",[40,241,242],{},"type"," qui dit quelle sorte de valeur elle accepte.",[75,245,247],{"className":171,"code":246,"filename":167,"language":173,"meta":80,"style":80},"string nom = \"Crêpes\";\nint portions = 4;\ndouble prix = 3.5;\nbool vegetarien = true;\n\nConsole.WriteLine(nom);\nConsole.WriteLine(portions);\n",[25,248,249,267,282,297,313,320,330],{"__ignoreMap":80},[84,250,251,255,258,261,264],{"class":86,"line":87},[84,252,254],{"class":253},"sOnC1","string",[84,256,257],{"class":90}," nom",[84,259,260],{"class":253}," =",[84,262,263],{"class":93}," \"Crêpes\"",[84,265,266],{"class":186},";\n",[84,268,269,272,275,277,280],{"class":86,"line":107},[84,270,271],{"class":253},"int",[84,273,274],{"class":90}," portions",[84,276,260],{"class":253},[84,278,279],{"class":100}," 4",[84,281,266],{"class":186},[84,283,284,287,290,292,295],{"class":86,"line":115},[84,285,286],{"class":253},"double",[84,288,289],{"class":90}," prix",[84,291,260],{"class":253},[84,293,294],{"class":100}," 3.5",[84,296,266],{"class":186},[84,298,300,303,306,308,311],{"class":86,"line":299},4,[84,301,302],{"class":253},"bool",[84,304,305],{"class":90}," vegetarien",[84,307,260],{"class":253},[84,309,310],{"class":100}," true",[84,312,266],{"class":186},[84,314,316],{"class":86,"line":315},5,[84,317,319],{"emptyLinePlaceholder":318},true,"\n",[84,321,323,325,327],{"class":86,"line":322},6,[84,324,187],{"class":186},[84,326,191],{"class":190},[84,328,329],{"class":186},"(nom);\n",[84,331,333,335,337],{"class":86,"line":332},7,[84,334,187],{"class":186},[84,336,191],{"class":190},[84,338,339],{"class":186},"(portions);\n",[37,341,342],{},"Les quatre types à connaître d'abord :",[344,345,346,362],"table",{},[347,348,349],"thead",{},[350,351,352,356,359],"tr",{},[353,354,355],"th",{},"Type",[353,357,358],{},"Contient",[353,360,361],{},"Exemple",[363,364,365,380,394,408],"tbody",{},[350,366,367,372,375],{},[368,369,370],"td",{},[25,371,271],{},[368,373,374],{},"Un nombre entier",[368,376,377],{},[25,378,379],{},"4",[350,381,382,386,389],{},[368,383,384],{},[25,385,286],{},[368,387,388],{},"Un nombre à virgule",[368,390,391],{},[25,392,393],{},"3.5",[350,395,396,400,403],{},[368,397,398],{},[25,399,254],{},[368,401,402],{},"Du texte",[368,404,405],{},[25,406,407],{},"\"Crêpes\"",[350,409,410,414,417],{},[368,411,412],{},[25,413,302],{},[368,415,416],{},"Vrai ou faux",[368,418,419],{},[25,420,421],{},"true",[37,423,424,425,427,428,431],{},"Le séparateur décimal est le point dans le code : ",[25,426,393],{},", jamais ",[25,429,430],{},"3,5",". Le texte s'écrit entre guillemets doubles.",[10,433,435],{"id":434},"le-mot-clé-var","Le mot-clé var",[37,437,438,439,442],{},"Quand la valeur à droite indique déjà le type, tu peux écrire ",[25,440,441],{},"var"," à la place :",[75,444,446],{"className":171,"code":445,"language":173,"meta":80,"style":80},"var nom = \"Crêpes\";   \u002F\u002F string\nvar portions = 4;     \u002F\u002F int\n",[25,447,448,464],{"__ignoreMap":80},[84,449,450,452,454,456,458,461],{"class":86,"line":87},[84,451,441],{"class":253},[84,453,257],{"class":90},[84,455,260],{"class":253},[84,457,263],{"class":93},[84,459,460],{"class":186},";   ",[84,462,463],{"class":180},"\u002F\u002F string\n",[84,465,466,468,470,472,474,477],{"class":86,"line":107},[84,467,441],{"class":253},[84,469,274],{"class":90},[84,471,260],{"class":253},[84,473,279],{"class":100},[84,475,476],{"class":186},";     ",[84,478,479],{"class":180},"\u002F\u002F int\n",[37,481,482,484],{},[25,483,441],{}," ne rend pas la variable libre. Le compilateur devine le type une fois pour toutes, et la variable le garde.",[37,486,487],{},"Cette règle te protège des erreurs. Le code suivant est refusé à la compilation :",[75,489,491],{"className":171,"code":490,"language":173,"meta":80,"style":80},"int portions = 4;\nportions = \"quatre\";  \u002F\u002F erreur : un texte n'entre pas dans un int\n",[25,492,493,505],{"__ignoreMap":80},[84,494,495,497,499,501,503],{"class":86,"line":87},[84,496,271],{"class":253},[84,498,274],{"class":90},[84,500,260],{"class":253},[84,502,279],{"class":100},[84,504,266],{"class":186},[84,506,507,510,513,516,519],{"class":86,"line":107},[84,508,509],{"class":186},"portions ",[84,511,512],{"class":253},"=",[84,514,515],{"class":93}," \"quatre\"",[84,517,518],{"class":186},";  ",[84,520,521],{"class":180},"\u002F\u002F erreur : un texte n'entre pas dans un int\n",[10,523,525],{"id":524},"les-chaînes-interpolées","Les chaînes interpolées",[37,527,528,529,532,533,536,537,540],{},"Pour mélanger du texte et des variables, utilise une ",[40,530,531],{},"chaîne interpolée"," : un texte précédé de ",[25,534,535],{},"$",", où chaque ",[25,538,539],{},"{expression}"," est remplacée par sa valeur.",[75,542,544],{"className":171,"code":543,"language":173,"meta":80,"style":80},"string nom = \"Crêpes\";\nint portions = 4;\ndouble prix = 3.5;\n\nConsole.WriteLine($\"{nom} pour {portions} personnes\");\nConsole.WriteLine($\"Prix par part : {prix \u002F portions:F2} euros\");\n",[25,545,546,558,570,582,586,621],{"__ignoreMap":80},[84,547,548,550,552,554,556],{"class":86,"line":87},[84,549,254],{"class":253},[84,551,257],{"class":90},[84,553,260],{"class":253},[84,555,263],{"class":93},[84,557,266],{"class":186},[84,559,560,562,564,566,568],{"class":86,"line":107},[84,561,271],{"class":253},[84,563,274],{"class":90},[84,565,260],{"class":253},[84,567,279],{"class":100},[84,569,266],{"class":186},[84,571,572,574,576,578,580],{"class":86,"line":115},[84,573,286],{"class":253},[84,575,289],{"class":90},[84,577,260],{"class":253},[84,579,294],{"class":100},[84,581,266],{"class":186},[84,583,584],{"class":86,"line":299},[84,585,319],{"emptyLinePlaceholder":318},[84,587,588,590,592,594,597,600,603,606,609,611,614,616,619],{"class":86,"line":315},[84,589,187],{"class":186},[84,591,191],{"class":190},[84,593,194],{"class":186},[84,595,596],{"class":93},"$\"",[84,598,599],{"class":93},"{",[84,601,602],{"class":186},"nom",[84,604,605],{"class":93},"}",[84,607,608],{"class":93}," pour ",[84,610,599],{"class":93},[84,612,613],{"class":186},"portions",[84,615,605],{"class":93},[84,617,618],{"class":93}," personnes\"",[84,620,200],{"class":186},[84,622,623,625,627,629,632,634,637,640,642,645,648,650,653],{"class":86,"line":322},[84,624,187],{"class":186},[84,626,191],{"class":190},[84,628,194],{"class":186},[84,630,631],{"class":93},"$\"Prix par part : ",[84,633,599],{"class":93},[84,635,636],{"class":186},"prix",[84,638,639],{"class":253}," \u002F",[84,641,274],{"class":186},[84,643,644],{"class":253},":",[84,646,647],{"class":186},"F2",[84,649,605],{"class":93},[84,651,652],{"class":93}," euros\"",[84,654,200],{"class":186},[37,656,657],{},"Le résultat :",[75,659,663],{"className":660,"code":661,"language":662,"meta":80,"style":80},"language-shell shiki shiki-themes github-light-default github-dark-default github-dark-default","Crêpes pour 4 personnes\nPrix par part : 0.88 euros\n","shell",[25,664,665,678],{"__ignoreMap":80},[84,666,667,670,673,675],{"class":86,"line":87},[84,668,669],{"class":90},"Crêpes",[84,671,672],{"class":93}," pour",[84,674,279],{"class":100},[84,676,677],{"class":93}," personnes\n",[84,679,680,683,686,689,692,695],{"class":86,"line":107},[84,681,682],{"class":90},"Prix",[84,684,685],{"class":93}," par",[84,687,688],{"class":93}," part",[84,690,691],{"class":93}," :",[84,693,694],{"class":100}," 0.88",[84,696,697],{"class":93}," euros\n",[37,699,700,701,703],{},"Entre les accolades, tu peux écrire un calcul. Après les deux-points, ",[25,702,647],{}," demande deux décimales.",[705,706,707],"tip",{},[37,708,709,710,54,713,716],{},"L'ancienne écriture avec le signe ",[25,711,712],{},"+",[25,714,715],{},"nom + \" pour \" + portions",") fonctionne aussi. La chaîne interpolée est plus lisible dès qu'il y a plusieurs valeurs.",[10,718,720],{"id":719},"les-opérateurs-de-base","Les opérateurs de base",[37,722,723],{},"Tu calcules avec les opérateurs habituels :",[75,725,727],{"className":171,"code":726,"language":173,"meta":80,"style":80},"int farine = 250;\nint total = farine * 2;      \u002F\u002F 500\nint reste = 10 % 3;          \u002F\u002F 1, le reste de la division\nfarine += 50;                \u002F\u002F 300, raccourci pour farine = farine + 50\n",[25,728,729,743,767,791],{"__ignoreMap":80},[84,730,731,733,736,738,741],{"class":86,"line":87},[84,732,271],{"class":253},[84,734,735],{"class":90}," farine",[84,737,260],{"class":253},[84,739,740],{"class":100}," 250",[84,742,266],{"class":186},[84,744,745,747,750,752,755,758,761,764],{"class":86,"line":107},[84,746,271],{"class":253},[84,748,749],{"class":90}," total",[84,751,260],{"class":253},[84,753,754],{"class":186}," farine ",[84,756,757],{"class":253},"*",[84,759,760],{"class":100}," 2",[84,762,763],{"class":186},";      ",[84,765,766],{"class":180},"\u002F\u002F 500\n",[84,768,769,771,774,776,779,782,785,788],{"class":86,"line":115},[84,770,271],{"class":253},[84,772,773],{"class":90}," reste",[84,775,260],{"class":253},[84,777,778],{"class":100}," 10",[84,780,781],{"class":253}," %",[84,783,784],{"class":100}," 3",[84,786,787],{"class":186},";          ",[84,789,790],{"class":180},"\u002F\u002F 1, le reste de la division\n",[84,792,793,796,799,802,805],{"class":86,"line":299},[84,794,795],{"class":186},"farine ",[84,797,798],{"class":253},"+=",[84,800,801],{"class":100}," 50",[84,803,804],{"class":186},";                ",[84,806,807],{"class":180},"\u002F\u002F 300, raccourci pour farine = farine + 50\n",[37,809,810,811,814,815,818,819,821,822,824,825,28],{},"Attention à la division de deux entiers : ",[25,812,813],{},"7 \u002F 2"," donne ",[25,816,817],{},"3",", pas ",[25,820,393],{},". Pour obtenir un résultat décimal, un des deux nombres doit être un ",[25,823,286],{},", par exemple ",[25,826,827],{},"7 \u002F 2.0",[10,829,831],{"id":830},"lire-une-saisie","Lire une saisie",[37,833,834,837],{},[25,835,836],{},"Console.ReadLine()"," lit une ligne tapée au clavier et la renvoie sous forme de texte :",[75,839,841],{"className":171,"code":840,"language":173,"meta":80,"style":80},"Console.WriteLine(\"Nom de la recette ?\");\nstring? saisie = Console.ReadLine();\nConsole.WriteLine($\"Tu as choisi : {saisie}\");\n",[25,842,843,856,877],{"__ignoreMap":80},[84,844,845,847,849,851,854],{"class":86,"line":87},[84,846,187],{"class":186},[84,848,191],{"class":190},[84,850,194],{"class":186},[84,852,853],{"class":93},"\"Nom de la recette ?\"",[84,855,200],{"class":186},[84,857,858,860,863,866,868,871,874],{"class":86,"line":107},[84,859,254],{"class":253},[84,861,862],{"class":186},"? ",[84,864,865],{"class":90},"saisie",[84,867,260],{"class":253},[84,869,870],{"class":186}," Console.",[84,872,873],{"class":190},"ReadLine",[84,875,876],{"class":186},"();\n",[84,878,879,881,883,885,888,890,892,894,897],{"class":86,"line":115},[84,880,187],{"class":186},[84,882,191],{"class":190},[84,884,194],{"class":186},[84,886,887],{"class":93},"$\"Tu as choisi : ",[84,889,599],{"class":93},[84,891,865],{"class":186},[84,893,605],{"class":93},[84,895,896],{"class":93},"\"",[84,898,200],{"class":186},[37,900,901,902,905,906,908,909,912],{},"Le ",[25,903,904],{},"?"," après ",[25,907,254],{}," signifie que la valeur peut être absente (",[25,910,911],{},"null","). Tu verras plus tard comment traiter ce cas.",[10,914,916],{"id":915},"à-retenir","À retenir",[15,918,919,932,938,951,956],{},[18,920,921,922,924,925,928,929,931],{},"Le SDK .NET fournit la commande ",[25,923,62],{}," ; ",[25,926,927],{},"dotnet new console"," crée un projet et ",[25,930,27],{}," le lance.",[18,933,934,935,937],{},"Un programme console simple tient dans ",[25,936,167],{},", avec des instructions de niveau supérieur.",[18,939,940,941,943,944,943,946,943,948,950],{},"Une variable a un type : ",[25,942,271],{},", ",[25,945,286],{},[25,947,254],{},[25,949,302],{},". Le texte s'écrit entre guillemets doubles, les décimales avec un point.",[18,952,953,955],{},[25,954,441],{}," laisse le compilateur choisir le type, qui ne change plus ensuite.",[18,957,958,959,962,963,966],{},"Une chaîne interpolée ",[25,960,961],{},"$\"... {valeur} ...\""," insère des valeurs dans un texte, et ",[25,964,965],{},":F2"," fixe deux décimales.",[968,969,970],"style",{},"html pre.shiki code .sIXEE, html code.shiki .sIXEE{--shiki-light:#953800;--shiki-default:#FFA657;--shiki-dark:#FFA657}html pre.shiki code .shWOn, html code.shiki .shWOn{--shiki-light:#0A3069;--shiki-default:#A5D6FF;--shiki-dark:#A5D6FF}html pre.shiki code .s5iOY, html code.shiki .s5iOY{--shiki-light:#0550AE;--shiki-default:#79C0FF;--shiki-dark:#79C0FF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sd6ml, html code.shiki .sd6ml{--shiki-light:#6E7781;--shiki-default:#8B949E;--shiki-dark:#8B949E}html pre.shiki code .scfrF, html code.shiki .scfrF{--shiki-light:#1F2328;--shiki-default:#E6EDF3;--shiki-dark:#E6EDF3}html pre.shiki code .syCW7, html code.shiki .syCW7{--shiki-light:#8250DF;--shiki-default:#D2A8FF;--shiki-dark:#D2A8FF}html pre.shiki code .sOnC1, html code.shiki .sOnC1{--shiki-light:#CF222E;--shiki-default:#FF7B72;--shiki-dark:#FF7B72}",{"title":80,"searchDepth":107,"depth":115,"links":972},[973,974,975,976,977,978,979,980,981,982],{"id":12,"depth":107,"text":13},{"id":34,"depth":107,"text":35},{"id":69,"depth":107,"text":70},{"id":160,"depth":107,"text":161},{"id":231,"depth":107,"text":232},{"id":434,"depth":107,"text":435},{"id":524,"depth":107,"text":525},{"id":719,"depth":107,"text":720},{"id":830,"depth":107,"text":831},{"id":915,"depth":107,"text":916},"Installer le SDK .NET, créer une application console avec dotnet new console, la lancer avec dotnet run, puis découvrir variables, types et chaînes interpolées.","md",{},[46,987,927,27,238,441,271,254,531,206],"SDK","debutant","\u002Fcsharp\u002Fpremier-programme",null,[992,996,1000],{"nom":993,"url":994,"type":995},"Parcours Microsoft Learn, Débuter avec C#","https:\u002F\u002Flearn.microsoft.com\u002Ffr-fr\u002Ftraining\u002Fpaths\u002Fget-started-c-sharp-part-1\u002F","cours",{"nom":997,"url":998,"type":999},"Tutoriels interactifs C# (Microsoft)","https:\u002F\u002Flearn.microsoft.com\u002Ffr-fr\u002Fdotnet\u002Fcsharp\u002Ftour-of-csharp\u002Ftutorials\u002F","exercice",{"nom":1001,"url":1002,"type":1003},"Créer une application console avec .NET","https:\u002F\u002Flearn.microsoft.com\u002Ffr-fr\u002Fdotnet\u002Fcore\u002Ftutorials\u002Fcreate-console-app","doc",{"title":5,"description":983},[1006,1009,1011],{"nom":1007,"url":1008},"Documentation .NET","https:\u002F\u002Flearn.microsoft.com\u002Ffr-fr\u002Fdotnet\u002F",{"nom":1010,"url":1002},"Créer une application console .NET",{"nom":1012,"url":1013},"Chaînes interpolées","https:\u002F\u002Flearn.microsoft.com\u002Ffr-fr\u002Fdotnet\u002Fcsharp\u002Flanguage-reference\u002Ftokens\u002Finterpolated","csharp\u002F01.premier-programme","H47KM_PsseFqjerwdnajHrVlIvAG4epsHZOy4mguOgs",[1017,1018,1022,1026,1030,1034,1038],{"path":989,"title":5,"stem":1014},{"path":1019,"title":1020,"stem":1021},"\u002Fcsharp\u002Fconditions-boucles-methodes","Conditions, boucles et méthodes","csharp\u002F02.conditions-boucles-methodes",{"path":1023,"title":1024,"stem":1025},"\u002Fcsharp\u002Fcollections-et-exceptions","Collections et exceptions","csharp\u002F03.collections-et-exceptions",{"path":1027,"title":1028,"stem":1029},"\u002Fcsharp\u002Fclasses-proprietes-records","Classes, propriétés et records","csharp\u002F04.classes-proprietes-records",{"path":1031,"title":1032,"stem":1033},"\u002Fcsharp\u002Fheritage-et-interfaces","Héritage et interfaces","csharp\u002F05.heritage-et-interfaces",{"path":1035,"title":1036,"stem":1037},"\u002Fcsharp\u002Flinq-et-async","LINQ et async\u002Fawait","csharp\u002F06.linq-et-async",{"path":1039,"title":42,"stem":1040},"\u002Fcsharp","csharp\u002Findex",[1042,1044],{"title":42,"path":1039,"stem":1040,"description":1043,"children":-1},"Le mémo de C# et .NET : commandes dotnet, types, contrôle du flux, collections, classes, LINQ, exceptions et async.",{"title":1020,"path":1019,"stem":1021,"description":1045,"children":-1},"Prendre des décisions avec if et switch, répéter avec for, foreach et while, et ranger son code dans des méthodes réutilisables.",[],[1048,1049,1050,1051,1053,1054,1056],{"path":989,"title":5,"niveau":988,"stem":1014},{"path":1019,"title":1020,"niveau":988,"stem":1021},{"path":1023,"title":1024,"niveau":988,"stem":1025},{"path":1027,"title":1028,"niveau":1052,"stem":1029},"intermediaire",{"path":1031,"title":1032,"niveau":1052,"stem":1033},{"path":1035,"title":1036,"niveau":1055,"stem":1037},"avance",{"path":1039,"title":42,"niveau":1057,"stem":1040},"memo",1794583457052]