zoukankan      html  css  js  c++  java
  • 1初步了解C#语言基础

    本篇博客对应视频讲解

    前言

    终于开始讲语言了,我选择讲C#。为什么呢?因为C#是很好的入门语言,简洁、全面,面向对象类型安全,开发体验好,上手容易。而其他的语言也已经有人讲了很多了,C#相对来说要少一些。

    从官方文档开始

    还记得从零开始学编程系列,我说过学习和遇到问题首先要查看官方的文档说明。所以我在开始本系列教程之前,也是浏览了官方文档。对于一些有经验,理解能力较强的同学来说,你跟着官方文档一步一步来学习也是可以的。我的博客文章和视频不会完全按照官方文档来,仍然会有所筛选,结合自己学习经验,把最容易理解最实用的部分优先讲出来。

    首先我们打开官方的指南。建议大家要浏览一下指南中的内容,该内容列举了官方提供的学习内容及学习顺序。

    我今天要讲的,是让大家整体了解一下C#语言,有一个整体的感观之后,之后讲解知识点也就不会那么陌生和难以理解了。

    在正式开始之前,最后确认一下以下内容是否已经做到了。

    1. 指法练习是否达到及格要求。
    2. 开发工具和环境是否已经准备妥当。

    指法不我说了。如果环境没有安装的话,请到官方网站或者在我们的网站主页去下载Visual Studio 2017。在安装选项只,我们当前只需要勾选.Net Core 跨平台开发(通常是最后一个)即可。 然后等待安装完成即可,不需要再进行任何设置了,你的环境已经可用了,这比其他语言便捷性上强很多

    开始快速入门

    今天会演示较多代码示例给大家,然后进行快速的说明,目的就是让大家提前有个直观的感受,有看不懂听不懂的地方也不需要着急,最关键的是要跟着教程,自己动手把所有的示例代码敲一遍,运行一下看看结果,如果你能举一反三,进行更多的改进,那就更好了。

    以下所有代码示例都可以在github上去查看: QuickStart/QuickStart。 代码是为了参考对照,记得一定要自己动手写程序,不要直接复制!不要直接复制!不要直接复制!

    代码即文档,更多的解释可以查看本篇博客关联的视频,视频中会更有更详细讲解!

    1. 字符串输入输出,运行程序。
    	//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!");
    
    1. 字符串的简单处理。
    	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);
    	}
    
    1. 数字类型的使用
    	//整型计算
    	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)}");
    
    1. 分支和循环
                //条件语句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;
                }
    
    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);
    
    1. 类简介 定义英雄类:
        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}]血量");
    
  • 相关阅读:
    FckEditor添加右键菜单;增加编辑区右键图片删除功能(asp.net )(二)
    GridView空数据时显示表头
    FckEditor添加右键菜单;增加编辑区右键图片删除功能(asp.net )(一)
    《InsideUE4》6GamePlay架构(五)Controller
    《Inside UE4》1基础概念
    《Inside UE4》2GamePlay架构(一)Actor和Component
    《InsideUE4》7GamePlay架构(六)PlayerController和AIController
    《InsideUE4》3GamePlay架构(二)Level和World
    Medusa引擎开源了
    《Inside UE4》0开篇
  • 原文地址:https://www.cnblogs.com/msdeveloper/p/9773746.html
Copyright © 2011-2022 走看看