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

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

编辑器的认识


紫色的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#创建项目。以及整个工程目录的层次关系。


创建新项目的流程


① 在首页面创建新项目

微信图片_20221020130443.png

② 类型选择为控制台应用程序

微信图片_20221020130509.png

③ 配置项目

这块主要是确定名称(该项目的名称以及解决方案的名称) 和 项目的存储位置。

这里想额外介绍的是项目和解决方案的关系。项目是解决方案的子集,也就是说,一个解决方案下可以创建多个项目,在一个项目中,有一个带着主函数的主类以及其他可以额外声明若干个类。

微信图片_20221020130531.png具体的层级关系展示图

微信图片_20221020130553.png

④ 最后注意一下菜单栏和工具栏

image.png

基础知识一遍过


一、输入输出


想运行Hello World,想测试A+B的结果,那么就离不开最最最基础的输出和输入的使用。

在C#中,想要进行输入输出,离不开使用Console类帮助咱们完成需求。

C# Console 类主要用于控制台应用程序的输入和输岀操作

以下四个是常用的输入输出时候需要调用的方法

微信图片_20221020130657.png

输入语句的格式是Console.ReadLine();注意下,C#输入语句,默认输入的都是字符串,如果想要输入整型数据要进行转换。

现在演示定义个字符串来接收输入的字符串信息: string str = Console.ReadLine();

微信图片_20221020130724.png

倘若想输入整型或者浮点型的数据,C#中有两种数据转换的方式。

① Convert 函数

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

微信图片_20221020130844.png

② Parse 函数

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

微信图片_20221020130913.png

二、C# 数据类型


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

值类型(Value types)
引用类型(Reference types)
指针类型(Pointer types)

① 值类型

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

值类型直接包含数据。


② 引用类型

引用类型不包含存储在变量中的实际数据,但它们包含对变量的引用。

换句话说,它们指的是一个内存位置。


③ 指针类型

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


汇总起来,是这张思维导图

image.png

如果想要得到一个类型或一个变量在特定平台上的准确尺寸,可以使用 sizeof 运算符。表达式 sizeof(type) 产生以字节为单位存储对象或类型的存储尺寸


三、运算符


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

C#运算符


四、判断语句、循环语句


判断语句和循环语句也是各个语句都差不多的

微信图片_20221020131119.png

微信图片_20221020131128.png

五、复杂数据类型的认知


①常量

在 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

③结构类型

使用 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}";
    }

六、数组


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

java和C#应该是写

   double[] array1 = new double[5];

对于C#而言,二维数组也确实需要注意

二维数组和常规的不同了


二维数组的声明方式:

元素的类型[ , ] 数组的名称=new 元素的类型[行数,列数];

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

一维数组中,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]);
              }
          }

总结


C#的基础知识中,清楚以上我罗列的这些就很好了。

大多数和其他语言差不多的,语句上都是if、while、for等等;

数据类型上都是int、double、long 等。

我认为唯一值得注意的是const声明的默认是静态常量和二维数组的声明

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


相关文章
|
8月前
|
存储 编译器 数据处理
C#基础入门之数据类型
C#基础入门之数据类型
|
3月前
|
开发框架 .NET API
RESTful API 设计与实现:C# 开发者的一分钟入门
【10月更文挑战第5天】本文从零开始,介绍了如何使用 C# 和 ASP.NET Core 设计并实现一个简单的 RESTful API。首先解释了 RESTful API 的概念及其核心原则,然后详细说明了设计 RESTful API 的关键步骤,包括资源识别、URI 设计、HTTP 方法选择、状态码使用和错误处理。最后,通过一个用户管理 API 的示例,演示了如何创建项目、定义模型、实现控制器及运行测试,帮助读者掌握 RESTful API 的开发技巧。
90 7
|
3月前
|
C#
C#入门
C#入门
29 0
|
2月前
|
程序员 C# 图形学
全面的C#/.NET自学入门指南
全面的C#/.NET自学入门指南
|
3月前
|
存储 消息中间件 NoSQL
Redis 入门 - C#.NET Core客户端库六种选择
Redis 入门 - C#.NET Core客户端库六种选择
78 8
|
4月前
|
设计模式 C# 开发者
C#设计模式入门实战教程
C#设计模式入门实战教程
|
4月前
|
安全 数据库连接 API
C#一分钟浅谈:多线程编程入门
在现代软件开发中,多线程编程对于提升程序响应性和执行效率至关重要。本文从基础概念入手,详细探讨了C#中的多线程技术,包括线程创建、管理及常见问题的解决策略,如线程安全、死锁和资源泄露等,并通过具体示例帮助读者理解和应用这些技巧,适合初学者快速掌握C#多线程编程。
89 0
|
4月前
|
开发框架 .NET Java
C#/.NET/.NET Core自学入门指南
C#/.NET/.NET Core自学入门指南
|
5月前
|
图形学 C# 开发者
全面掌握Unity游戏开发核心技术:C#脚本编程从入门到精通——详解生命周期方法、事件处理与面向对象设计,助你打造高效稳定的互动娱乐体验
【8月更文挑战第31天】Unity 是一款强大的游戏开发平台,支持多种编程语言,其中 C# 最为常用。本文介绍 C# 在 Unity 中的应用,涵盖脚本生命周期、常用函数、事件处理及面向对象编程等核心概念。通过具体示例,展示如何编写有效的 C# 脚本,包括 Start、Update 和 LateUpdate 等生命周期方法,以及碰撞检测和类继承等高级技巧,帮助开发者掌握 Unity 脚本编程基础,提升游戏开发效率。
127 0
|
5月前
|
开发者 iOS开发 C#
Uno Platform 入门超详细指南:从零开始教你打造兼容 Web、Windows、iOS 和 Android 的跨平台应用,轻松掌握 XAML 与 C# 开发技巧,快速上手示例代码助你迈出第一步
【8月更文挑战第31天】Uno Platform 是一个基于 Microsoft .NET 的开源框架,支持使用 C# 和 XAML 构建跨平台应用,适用于 Web(WebAssembly)、Windows、Linux、macOS、iOS 和 Android。它允许开发者共享几乎全部的业务逻辑和 UI 代码,同时保持原生性能。选择 Uno Platform 可以统一开发体验,减少代码重复,降低开发成本。安装时需先配置好 Visual Studio 或 Visual Studio for Mac,并通过 NuGet 或官网下载工具包。
475 0