00-C#环境快速搭建和基础语法

1 如何学习上位机

在这里插入图片描述

2 .NET开发环境的搭建和使用

2.1 菜单栏

【文件】–》新建项目–>找到我们需要的项目类型

在新建项目窗口中,我们新建的项目要求可以在这里选择:

(1)版本的选择:建议大家选择4或者4.6

(2)选择开发语言:一般都是C#

(3)项目类型:初学阶段一般都用"控制台"程序。仅仅是学习需要。

(4)项目的名称。要有意义。

(5)位置:项目所有文件的保存位置。建议不要使用中文目录。

(6)解决方案名称:默认和项目名称一样。

最后确定即可。

【视图】–>可以显示各种窗口。

【调试】–>程序运行的入库(调试程序的入库)

调试:也就是尝试编译和运行程序。调试主要是我们开发阶段的选择,用来观察我们编写的程序。

F5键必须会使用。

【工具】–>选项,在这里可以对开发环境全局进行配置。

2.2 工具栏

【保存】:是对当前打开的文件保存。Ctrl+S随时保存。

【全部保存】:是对当前项目中打开的文件全部保存。

提示:记住Ctrl+k+D 当前类的所有代码自动对齐!

【Debug】:调试选项,开发中我们一般都用这个。

【Release】:发布选项,所有项目开发和调试完毕才使用的选项。

【启动】:启动编译器,编译当前缩写的代码,生成相关的文件。

【注释/撤销注释】:注释就是对代码的说明。注释是不参与程序编译。

2.3 功能窗口

【工具箱】:是在Windows程序中或者WebForm程序中,用来拖放控件的。

【调试相关窗口】:主要是程序调试中我们观察数据用的。

PS:局部变量等窗口,需要在启动调试后,通过“调试”–>“窗口”再找到对应的窗口选项。

【解决方案】:主要提供程序的统一编译。

【属性窗口】:主要是对可视化的窗体和控件属性进行设置,我们用户设置完属性后,

后台自动生成相关代码。

2.4 控制台项目结构

1.解决方案名称一个解决方案里面可以有多个项目

2.当前项目结构:

(1)Properties文件夹:(属性文件夹)

AssemblyInfo.cs文件:里面的配置信息主要是用来保存项目的版权信息。

PS:在C#项目中,我们代码文件都是以.cs结尾。

(2)Program.cs 文件: 是项目的启动入口文件。

(3)我们自己添加的其他类文件(这个是我们后续学习的重点)

3.引用:就是我们当前项目所需要的.NET底层模块。

因为底层模块已经被微软工程师封装好了,我们只需要使用即可。

如果我们自己开发中,需要一些内容,但是没有自动引入,需要我们自己添加。

不同项目所需要的引用是不同的。

引用只是说我们开发当前项目可以使用哪些内容(模块)。

4.命名空间

一个模块可以包含若干命名空间。

我们在类中想使用哪些内容,必须引入对应命名空间。

命名空间的概念:微软底层的类或我们自己添加的类,在实际开发中会很多,为了管理我们把不同的类放到不同的命名空间里面。

使用using关键字引入,引入后,我们可以直接使用这个命名空间下面的所有类。

如果不使用using引入命名空间,那么我们使用类的时候,就需要通过“命名空间.类名”方式使用。

//项目的命名空间,默认和项目名称一样
namespace MyFirstApp
{
  
}

一个类必须要包括在指定命名空间里面。

class Program

{
    
}
 //class表示一个类,我们开发者写的代码,都是在class里面,class是我们程序的基本单元。

 static void Main(string[] args)
{

}

//程序的入口方法,也就是程序启动的时候,首先执行的内容。

这个方法是静态的,不要修改。

控制台类Console类。

Console.WriteLine(“在这里写上需要输出的内容”);

Console.ReadLine()获取用户通过控制台输入的内容。

5.C#程序编写的基本规范

1.在C#中严格区分大小写。

2.每条语句写完后,要用分号结尾。

3.在代码编写中,一定要使用“英文半角”

2.5 .NET项目编译、运行过程

1.非托管代码
在这里插入图片描述

特点:程序必须依赖于操作系统,而且编译器生成的程序文件包含的仅仅是适用于特定CPU架构的机器指令。

不足:不同的操作系统需要单独编写代码,重复低效。

2.托管代码

最早就是Java跨平台设计思想,.NET从2003年开始,而且发展更新迅速。
在这里插入图片描述

特点:

(1)开发者编写的代码编译后,不依赖于操作系统和特定的CPU架构机器指令,而是依赖于一种

中间的,在各个操作系统上都能执行的代码,这种代码Java里面叫做ByteCode(字节码),.NET里面我们称之为MSIL指令(微软中间语言)。


(2)不管是Java的字节码还是.NET的**MSIL**指令仍然需要最终被翻译成CPU能够执行的机器指令。这个功能是由一个运行在特定操作系统上的软件来完成,这个软件我们称之为“**虚拟机**”。.NET Framework类库,后面我们会慢慢学习,CLR这个我们也会介绍。

MSIL查看工具(IL DASM)

VS2010阶段,安装目录里面就有。

VS2013之后,我们需要自己查找,在安装目录里。

exe文件:

编译后生成的可执行文件,里面是IL指令。项目发布或给用户可以直接运行的程序。

dll文件:

编译后生成的动态链接库文件。里面也是IL指令。

pdb文件:

Program Debgu DataBase(程序调试数据库)文件。

包含了编译后程序指向源代码的位置信息,用于调试的时候定位源码,方便调试。

vshost.exe文件

用于提高调试效率的宿主进程。

VS运行调试的时候,其实是打开的这个文件。这个程序可以让VS跟踪调试信息。

vshost.exe.manifest

是一个XML文件,用于COM类,接口库的绑定和激活,这些信息以前是在注册中。

在这里插入图片描述

2.6 其他小技巧强调

1.Main方法

(1)作用:程序入口方法,从这里开始运行。

(2)要求:一个程序只能有一个Main()方法,首字母要大写、返回值为void或者int、命令行参数是可选的。

(3)Main方法的形式

形式1: static void Main(string[] args){ }

形式2:  static int Main(string[] args){ }

形式3: static void Main(){ }

形式4:  static int Main(){ }

2.C#中的注释

(1)作用:用来说明代码的作用,帮助程序员理解程序。注册是不参与编译。

(2)单行注释、多行注释、**文档注释**()三个斜线

3.代码折叠器region

作用:将多行代码折叠,使得代码可读性增强,容易查询。

要求:必须成对出现。

例:
在这里插入图片描述

4.程序中编写问题小节

(1)程序语句:

大小写:C#严格区分大小写,比如Class和class是完全不一样的。

位置:类必须在指定的命名空间中,方法、属性、字段的定义,必须放到类中。

普通语句的执行,必须放到方法中。

(2)引号

使用双引号"",要求英文半角,并且成对出现。

字符串的定义必须使用双引号。

带空格的字符串"  "和不带空格的字符串""是完全不一样的。

(3)注释

关键性的语句需要添加注释。

类名称前应该使用多行注释(文档注释),说明类的功能和使用方法。

复杂方法前面应该使用文档注释,说明方法的功能,参数的含义,返回值信息等。

文档注释一方面给我们开发者日后做参考,还有就是给调用者提供智能提示。

2.7 通过实例比较程序编写的两种思想

1.程序的基本概念

(1)生活化理解:人们完成一件事情,并得到一个结果,从做事开始到得到结果的步骤,就是程序。

(2)好处:对于重复性的事情,规定好步骤,孰能生巧,提高效率。

(3)计算机程序:就是人们通过计算机完成一个或多个任务,这个任务需要编写计算机能够执行的指令。这些指令就是程序。

 程序语言:二进制机器指令;汇编语言;C语言;C++;Java、C#...

 所有高级语言,最终都要被翻译成二进制指令(1,0)才能被计算机执行。

 高级语言到低级语言的“翻译官”,已经由语言开发工程师完成了。

2.程序编写的两种思想PK

面试题目:请基于OOP,完成一个简单的计算器。(A,B)

(1)面向过程(Procedure Oriented)是一种以“过程/流程”为中心的编程思想。

 方法:分析问题,总结步骤,按照一定的流程完成任务。

 缺点:随时项目规模增大,业务复杂度提高,基于一个个函数编写,会变得非常杂乱!

       后续维护几乎无法完成,况且任务本身也不见得能完成。

 适合:嵌入式开发,比如C语言。需要和硬件交互。

(2)面向对象(Object Oriented,简称OO)是一种以“事物/对象”为中心的编程思想。

 思考:当然任务大致有几个?我们根据需求分析,知道当前需要完成两个数相加减运算任务

       我们设计一个计算器对象,然后把两个任务封装成方法。然后,我们在主程序中,

       通过对象去完成这个运算的任务。


 好处:我们把需要的任务,单独指派特定的对象,可以由更专业的人去完成,我们可以不用关心


       这个对象怎么实现的,我们只管使用!(封装) 

       对象的设计者,可以更集中的研究对象内部的实现,对象的调用者,只关心对象的使用。

       而不用关心对象的设计。(高内聚、低耦合)
对于项目后续的更新、维护,基于对象设计程序,会变得非常简单和方便。


       面向对象的学习需要挺长的一个过程,大家可以慢慢体会。

  适用:各种规模的企业应用管理系统。


 【展示面向过程和面向对象的VS图解】

2.8 面向对象编程应该如何学习

1.面向对象三大特性

(1)封装:隐藏内部实现细节,模块开发者之关心内部实现,模块调用者,只关心接口适用。

  好处:安全性保障。(避免代码外漏)、快速应用、团队协作。

  应用:类是程序的基本单元。代码被封装到类里面,一个类是一个单元,是一个封装,方法也是一定程度的封装,模块又是对类的封装。系统也在某些时候也是封装的体现。

(2)继承:复用技术。

 好处:一处更新,处处使用。弊端:关联会越来越复杂。

 我们自己的编写的代码,一般使用继承关系的并不多。

(3)多态

 概念:让一个对象的接口可以根据不同的请求,做出不同的响应。

 应用:继承多态、接口多态。

2.开发者必须要掌握OOP的各种原则

(1)单一职责(对象职责明确原则)

 要求:一个对象只能做好一件事情,必须专注,职责过多,会引起代码混乱,维护麻烦。

      如果一个类封装方法或属性的时候,比较多,就要考虑这些方法属性是不是属于这个对象。

(2)开放封闭原则(开闭原则)

 要求:需求变化时,尽量减少类的修改,而是通过扩展来完成。封闭修改,开放扩展。

(3)依赖倒置原则、接口隔离原则、里氏替换原则。

总结:学好面向对象编程,就是要掌握面向对象编程的各种原则,方法等指导我们如何写程序。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值