• 【全栈计划 —— 编程语言之C#】基础入门知识一文懂


    前言

    首次写偏向于项目的文章,无论是Unity的游戏的文章,还在现在用于服务Unity开发的C#文章中,都不会十分耐心的琢磨细节。
    在这里插入图片描述
    不太想去抓细节,写出来的东西能够跑起来就行,深挖容易消耗自己的热情,而且写出来的文章也十分啰嗦和累赘。

    跑起来获得正反馈,不一直摸索一些没有成就感的细节,这种很容易打击自信心的,大踏步往前,不求甚解都行,然后再去优化,不断处理曾经没有处理好的细节、bug,迭代前进。

    希望都能够享受解决Bug的过程啦

    在这里插入图片描述

    编辑器的认识

    紫色的logo的软件叫做Microsoft Visual Studio
    蓝色的logo的软件叫做Visual Studio Code
    两款软件都是微软家的东西,都是深受开发者喜爱的软件,只是各自拿手的领域不同。
    在这里插入图片描述
    两者区别大致如下,作为常识随便过一下就可以了。
    ① 紫色logo的是编译器,蓝色logo的是编辑器

    VisualStudio(简称VS)是美国微软公司的开发工具包系列产品,是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境(IDE)等。通俗的讲,是一款`编译器

    visual studio code是美国微软公司是一个项目:运行于 Mac OS X、Windows和 Linux 之上的,针对于编写现代Web 和云应用的跨平台源代码编辑器。通俗地讲,是一款编辑器

    ② 跨平台运行能力不一样。

    Visual Studio 各种功能只能在 Windows 和 macOS(Mac OS X )之上运行,不能跳跃各平台编辑。
    visual studio code是一款真正的跨平台编辑器,可以在用户习惯的平台上使用,而不是非要迁徙到 Windows上。

    ③ 功能不一样

    Visual Studio是目前最流行的Windows平台应用程序的集成开发环境。提供了高级开发工具、调试功能、数据库功能和创新功能,帮助在各种平台上快速创建当前最先进的应用程序,开发新的程序。
    visual studio code集成了所有一款现代编辑器所应该具备的特性,包括语法高亮,可定制的热键绑定,括号匹配以及代码片段收集,这款编辑器也拥有对 Git 的开箱即用的支持。

    在这里插入图片描述

    怎么用C#创建项目。以及整个工程目录的层次关系。

    创建新项目的流程

    ① 在首页面创建新项目
    在这里插入图片描述

    ② 类型选择为控制台应用程序
    在这里插入图片描述
    ③ 配置项目

    这块主要是确定名称(该项目的名称以及解决方案的名称) 和 项目的存储位置。
    这里想额外介绍的是项目解决方案的关系。项目是解决方案的子集,也就是说,一个解决方案下可以创建多个项目,在一个项目中,有一个带着主函数的主类以及其他可以额外声明若干个类。

    在这里插入图片描述
    具体的层级关系展示图
    在这里插入图片描述
    ④ 最后注意一下菜单栏和工具栏
    在这里插入图片描述

    基础知识一遍过

    一、输入输出

    想运行Hello World,想测试A+B的结果,那么就离不开最最最基础的输出和输入的使用。
    在C#中,想要进行输入输出,离不开使用Console类帮助咱们完成需求。
    C# Console 类主要用于控制台应用程序的输入和输岀操作
    以下四个是常用的输入输出时候需要调用的方法
    在这里插入图片描述
    输入语句的格式是Console.ReadLine();注意下,C#输入语句,默认输入的都是字符串,如果想要输入整型数据要进行转换。
    现在演示定义个字符串来接收输入的字符串信息: string str = Console.ReadLine();
    在这里插入图片描述
    倘若想输入整型或者浮点型的数据,C#中有两种数据转换的方式。

    ① Convert 函数

    int num;
    num = Convert.ToInt32(Console.ReadLine());
    
    因为 Console.ReadLine() 只接受字符串格式的数据。
    函数 Convert.ToInt32() 把用户输入的数据转换为 int 数据类型
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述
    ② Parse 函数

    C# Parse 方法用于将字符串类型转换成任意类型,具体的语法形式如下。
    数据类型   变量名 = 数据类型.Parse(字符串类型的值);
    
    • 1
    • 2

    在这里插入图片描述

    二、C# 数据类型

    在 C# 中,变量分为以下几种类型:

    值类型(Value types)
    引用类型(Reference types)
    指针类型(Pointer types)
    
    • 1
    • 2
    • 3

    ① 值类型

    值类型变量可以直接分配给一个值。它们是从类 System.ValueType 中派生的。
    值类型直接包含数据

    ② 引用类型

    引用类型不包含存储在变量中的实际数据,但它们包含对变量的引用。
    换句话说,它们指的是一个内存位置

    ③ 指针类型

    指针类型变量存储另一种类型的内存地址。C# 中的指针与 C 或 C++ 中的指针有相同的功能。

    汇总起来,是这张思维导图
    在这里插入图片描述
    如果想要得到一个类型或一个变量在特定平台上的准确尺寸,可以使用 sizeof 运算符表达式 sizeof(type) 产生以字节为单位存储对象或类型的存储尺寸

    三、运算符

    每个语言都差不多,就反复查阐述了,不清楚的可以随时查文档来横扫疏漏
    C#运算符

    四、判断语句、循环语句

    判断语句和循环语句也是各个语句都差不多的
    在这里插入图片描述


    在这里插入图片描述

    五、复杂数据类型的认知

    ①常量

    在 C# 中,不能以 C 和 C++ 中通常采用的方式使用 #define 预处理器指令定义常量。
    常量是使用 const 关键字来定义的,const定义出来的是静态常量

    静态常量这儿记住两点吧:
    ① 随着类的加载而加载,即,一个类生成,它也就生成了。
    ②可使用类直接调用。其数值在全局具有通用性。即,我在函数1中修改了它,那么我在函数4中再使用这个静态常量的时候,它不是零,不是其他值,就是函数1中修改后的结果。

    ②枚举类型

    使用enum来定义枚举类型。在枚举类型中,可以理解为用从0 开始的计数的整数来指代放在其中的数据,比如0代表Spring了,1代表Summer了。

            //1、默认写法
            enum Season
            {
                Spring,
                Summer,
                Autumn,
                Winter
            }
    
            //2、自定义类型
            enum ErrorCode : ushort
            {
                None = 0,
                Unknown = 1,
                ConnectionLost = 100,
                OutlierReading = 200
            }
            
    		 //枚举类型中,是从0开始的,那么Season这个枚举只有0,1,2,3
                var c = (Season)3;
                Console.WriteLine(c);//输出结果:Winter
    
                //再测试一个数字4
                var d = (Season)4;
                Console.WriteLine(d);//输出结果:4
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    ③结构类型

    使用 struct 关键字定义结构类型,结构体中可以写方法

      public struct Coords
        {
            //结构体里面可以写方法
            public Coords(double x,double y)
            {
                X = x;
                Y = y;
            }
            
            //这里也是方法,而且显示的是存在引用了
            public double X { get; }
            public double Y { get; }
    
            //C# 中 $ 符号的作用是C#6.0中新出现的一个特性,也即是字符串的拼接优化。
            // ToString ()就是将一个非字符串类型的值转换为字符串
            //=>是Lambad表达式:https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/operators/lambda-operator#code-try-0
            //写文章时候倒腾它
            public override string ToString() => $"{X},{Y}";
        }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    六、数组

    数组的声明,和c和c++不太同吧。C和c++里面写的是double g[N][N]
    java和C#应该是写

    
       double[] array1 = new double[5];
    
    
    • 1
    • 2
    • 3

    对于C#而言,二维数组也确实需要注意
    二维数组和常规的不同了

    二维数组的声明方式:
    元素的类型[ , ] 数组的名称=new 元素的类型[行数,列数];

    int[,] arr = new int[4, 3]
    
    • 1

    一维数组中,Length属性代表数组中的元素的个数,而二维数组中的Length指的是行*列 的结果

    a、使用foreach可以简单快速的遍历。
    b、数组的GetLength()可以得到指定纬度的长度。其方法传入0 可以得到行数。 传入1 可以得到列数

              int[,] arr = new int[,] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } };
              for (int i = 0; i < arr.GetLength(0); i++)
              {
                  for (int j = 0; j < arr.GetLength(1); j++)
                  {
                      Console.WriteLine (arr[i, j]);
                  }
              }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    总结

    C#的基础知识中,清楚以上我罗列的这些就很好了。
    大多数和其他语言差不多的,语句上都是if、while、for等等;
    数据类型上都是int、double、long 等。
    我认为唯一值得注意的是const声明的默认是静态常量二维数组的声明

    下一篇直接使用基础知识写一个小Demo,然后着手直接进入C#的高级特性了

  • 相关阅读:
    Qt5开发从入门到精通——第五篇一节( 文本编辑器 Easy Word 开发 V1.0 详解 )
    数组reduce方法详解
    中断下半部之 tasklet
    R语言安装及基础知识
    微服务基础设施选型
    十、Ajax&Axios
    【表面缺陷检测】表面缺陷检测数据集汇总
    基于单片机的自动循迹小车(论文+源码)
    面试复习题——底层
    Python自动化办公2.0 即将发布
  • 原文地址:https://blog.csdn.net/weixin_52621323/article/details/125396766