标签:结合 pre 环境 .net 学编程 mes 教程 半径 each
本篇博客对应视频讲解
终于开始讲语言了,我选择讲C#。为什么呢?因为C#是很好的入门语言,简洁、全面,面向对象类型安全,开发体验好,上手容易。而其他的语言也已经有人讲了很多了,C#相对来说要少一些。
还记得从零开始学编程系列,我说过学习和遇到问题首先要查看官方的文档说明。所以我在开始本系列教程之前,也是浏览了官方文档。对于一些有经验,理解能力较强的同学来说,你跟着官方文档一步一步来学习也是可以的。我的博客文章和视频不会完全按照官方文档来,仍然会有所筛选,结合自己学习经验,把最容易理解最实用的部分优先讲出来。
首先我们打开官方的指南。建议大家要浏览一下指南中的内容,该内容列举了官方提供的学习内容及学习顺序。
我今天要讲的,是让大家整体了解一下C#语言,有一个整体的感观之后,之后讲解知识点也就不会那么陌生和难以理解了。
在正式开始之前,最后确认一下以下内容是否已经做到了。
指法不我说了。如果环境没有安装的话,请到官方网站或者在我们的网站主页去下载Visual Studio 2017
。在安装选项只,我们当前只需要勾选.Net Core 跨平台开发
(通常是最后一个)即可。
然后等待安装完成即可,不需要再进行任何设置了,你的环境已经可用了,这比其他语言便捷性上强很多。
今天会演示较多代码示例给大家,然后进行快速的说明,目的就是让大家提前有个直观的感受,有看不懂听不懂的地方也不需要着急,最关键的是要跟着教程,自己动手把所有的示例代码敲一遍,运行一下看看结果,如果你能举一反三,进行更多的改进,那就更好了。
以下所有代码示例都可以在github
上去查看: QuickStart/QuickStart。
代码是为了参考对照,记得一定要自己动手写程序,不要直接复制!不要直接复制!不要直接复制!
代码即文档,更多的解释可以查看本篇博客关联的视频,视频中会更有更详细讲解!
//1 字符串输出 Console.WriteLine("Hello World!"); //定义字符串类型变量 string name = "NilTor"; //2 带变量输出 Console.WriteLine($"My name is {name}"); //3 带格式输出 Console.WriteLine($@" Hello, welcome to msdev.cc! My name is {name}. What's your name?"); //输入字符串 string yourName = Console.ReadLine(); Console.WriteLine($"Hello {yourName},nice to meet you!");
string url = "https://msdev.cc"; // 判断是否包含 if (url.Contains("https")) { Console.WriteLine("这是一个https链接"); } //字符串替换 url = url.Replace("https", "ftp"); Console.WriteLine($"新网址:{url}"); //判断是否以某字符开头 if (url.StartsWith("ftp")) { Console.WriteLine("这是ftp链接:" + url); }
//整型计算 int x = 4; int y = 17; int fx = 2 * (x + y); Console.WriteLine(fx); //除法 Console.WriteLine($"{y} 除以 2 = {y / 2},余{y % 2}"); double fy = y / 2.0; Console.WriteLine($"{y} 除以 2.0 = {fy}"); double fa = Math.Sqrt(8); Console.WriteLine($"8的开方为:{fa}"); //输入类型范围 Console.WriteLine($"int(整型)最大值 :{int.MaxValue} , 最小值 :{int.MinValue}"); Console.WriteLine($"double(整型)最大值 :{double.MaxValue} , 最小值 :{double.MinValue}"); //计算圆的面积 double r = 2.4; double area = Math.PI * r * r; Console.WriteLine($"半径为{r}的圆的面积为:{area},约为:{Math.Round(area, 3)}");
//条件语句if int a = 1; if (a > 0) { Console.WriteLine("a大于0"); } else { Console.WriteLine("a小于0"); } //switch分支语句 switch (a) { case 0: Console.WriteLine("a等于0"); break; case 1: Console.WriteLine("a大于0"); break; default: Console.WriteLine("a小于0"); break; } //for循环 for (int i = 0; i < 10; i++) { Console.Write($"{i} "); } Console.WriteLine(); //foreach循环 int[] numbers = new int[4]; numbers[0] = 1; numbers[1] = 2; numbers[2] = 3; numbers[3] = 4; //int[] numbers = new int[] { 1,2,3,4}; foreach (int item in numbers) { Console.Write(item + " "); } Console.WriteLine(); //while循环 int j = 10; while (j > 0) { Console.Write(j + " "); j--;//i=i-1; }
//定义List List<string> list = new List<string>(); //添加值 list.Add("Black"); list.Add("White"); list.Add("Orange"); list.Add("Red"); list.Add("Blue"); //遍历输出 foreach (var item in list) { Console.Write(item + " "); } Console.WriteLine(); //数列示例 var fibonacciNumbers = new List<int> { 1, 1 }; while (fibonacciNumbers.Count < 20) { //取出最后两个值 var previous = fibonacciNumbers[fibonacciNumbers.Count - 1]; var previous2 = fibonacciNumbers[fibonacciNumbers.Count - 2]; //添加到列表 fibonacciNumbers.Add(previous + previous2); } //遍历输出 foreach (var item in fibonacciNumbers) Console.WriteLine(item);
class Hero { /// <summary> /// 名称 /// </summary> public string Name { get; set; } /// <summary> /// 武器 /// </summary> public string Weapon { get; set; } /// <summary> /// 血量 /// </summary> public int HP { get; set; } public Hero(string name, int Hp) { Name = name; HP = Hp; Console.WriteLine($"{name}登场!拥有[{Hp}]血量"); } /// <summary> /// 攻击 /// </summary> /// <param name="target"></param> public void Attack(string target, int damage = 0) { Console.WriteLine($"[{Name}]使用[{Weapon}]攻击了[{target}],造成了[{damage}]点伤害"); Console.WriteLine(); } }
执行方法:
//设置英雄库及武器库 string[] heroNames = { "钢铁侠", "蝙蝠侠", "美队", "超人" }; string[] weapons = { "拖鞋", "拳头", "棍棒", "机枪" }; //创建英雄队列 var heros = new List<Hero>(); var random = new Random(); //英雄登场,配置武器 foreach (var item in heroNames) { var hero = new Hero(item, random.Next(60, 120)); hero.Weapon = weapons[random.Next(0, 4)]; heros.Add(hero); } //大混战 while (heros.Count > 1) { var position = random.Next(0, heros.Count); var target = random.Next(0, heros.Count); if (position != target) { int damage = random.Next(16, 32); heros[position].Attack(heros[target].Name, damage); heros[target].HP = heros[target].HP - damage; if (heros[target].HP < 0) { Console.WriteLine(heros[target].Name + "已阵亡"); heros.Remove(heros[target]); } } Thread.Sleep(500); } Console.WriteLine($"最后的胜者为:[{heros[0].Name}].还有[{heros[0].HP}]血量");
标签:结合 pre 环境 .net 学编程 mes 教程 半径 each
原文地址:https://www.cnblogs.com/msdeveloper/p/9773746.html