C#初级学习教程
前言
主要是近期学习C#的记录,主要是一些基础语法
提示:以下是本篇文章正文内容,还有一些案例
内容
一、计算机语言
1.计算机语言(编程语言)(程序设计语言)
人类交流(自然语言)
计算机语言的发展
机器语言——01010101二进制语言
汇编语言——add,mov等符号语言
高级语言——+,- 等
经过编译最终会编译成机器语言,机器最终才能读懂
各种语言的特点与应用
1.c:底层开发,贝尔实验室
面向过程,执行效率高,应用:单片机,嵌入式
2.c++:应用程序开发 贝尔实验室
面向对象,应用:ui,工业软件
3.java:it编程主流语言 美国sun公司
面向对象,应用:几乎涉及所有it领域
4.c#:微软
面向对象,应用:上位机
二、Helloworld
1 .命名空间Using三种用法
1.调用
案例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
调用命名空间(using)
先用一个要的类必须先调用引用命名空间
2.创建别名
案例:
//Using spacege = System.Collections.Generic;//通过赋值方式
作用方便简洁管理
3.using,数据库/文件流
定义一个范围 用于using结束后自动销毁 释放资源
补充;不一定只能用using来调用命名空间,可以在类前加命名空间实现调用
//System.console
命名空间可以嵌套
2 .控制台框架
A.Program类
解释:
启动类前面用class关键字引用,可以修改名称
B.Main
解释:程序入口(主线程),
规范:
1.每个项目必须有一个Main,也只能只有一个,不能同名出现Main
2.如果非要保留多个,要设置:项目属性–应用程序–启动对象在里面设置对应的入口函数(玩玩,真实项目不会这样做)
3.Main建议不要修改,区分大小写
4.属于静态的函数static
5.可以修改类的返回类型只能 void int
6.参数列表可以为空
案例:
//static void Main(string[] args)
C.标识符
解释:相当于一个个名称(命名空间/类名/对象/变量名/方法名/等)
规范:
1.首个字符必须是字母或者下划线,其余可以是字母数字符号
2.不能使用关键字
3.不能同名
4.区分大小写
D.语句
解释:是一行行的代码
规范:
必须;结尾
F.注释
解释:解释内容
基本框架
解决方案–多个项目–命名空间–类--Main函数/自定义函数/关键字/标识符/执行语句/注释
3 .Console类解读
解释:
Console类是控制台标准输入输出的类
快捷键键:
ctrl+j实现召唤快捷智能提示菜单
Console.WriteLine–cw+tab+tab
1.各种console类:
输出:
Console.WriteLine()//按下回车光标出现在下一行
Console.Write()//按下回车光标出现在后面
Console.WriteLine("helloword");//光标在下一行
Console.Write("helloword");//光标在后面
输入:
Console.ReadKey() 为了使控制台暂停,按下任意一个键程序继续运行
Console.ReadLine()读取用户输入内容,回车后光标停留下一行
Console.Read()
2.连接字符串:
+:
Console.WriteLine("李老师"+"早上好");//连接字符串
Console.WriteLine("李老师" +66666);
占位符:
Console.WriteLine("我叫{0},我擅长{1}","梁锦豪", "plc");注意坑位必须小于对应的参数个数
$ ;
Console.WriteLine($"我叫{变量1},我擅长{变量2}
3.设置控制台属性
Console.BackgroundColor = ConsoleColor.Black;//背景颜色
Console.ForegroundColor = ConsoleColor.White;//字体颜色
Console.Clear();//必须清楚缓存区
三、.NET概述
PART1 .Net是用于各类应用的框架和程序运行环境
解释:
微软搭建技术平台
在该平台可以运用多种语言c#,vb net开发软件
程序运行在。Net平台上
平台主要包含两部分:
.Net framework
Vs(集成开发工具)
举例:
.Net平台相当于车间 framework相当于车间里面各种组成设备
PART2 .Net framework框架包括 CLR公共语言运行时 , .Net类库
1.CLR公共语言运行时
是.Net可由多种编程语言的运行环境
2.CTS通用类型系统
案例:
CTS:int32 ,
C#:Int ,
VB.NET:integer
是定义统一的统一的数据类型系统,尽管不同的语言不一样,但是编译后,却是一样的(公共语言的数据类型)
3.CLS通用语言规范
消除不同语言之间语法的差别
补充
运行c#开发程序时,必须安装net framework
如果不需要编写代码不需要安装vs
Vs2019需要netframewrok4.7.2
PART3 两种交互式模式
解释:
可以理解成开发软件的类型模式
1.c/s 客户机/服务器模式
客户端需要安装专用的客户端软件
如qq,微信,包括后面的工业软件
2.B/S
浏览器/服务器模式
客户机需要安装浏览器
这种结构下完全通过www浏览器实现
四、编码及其调试技巧
PART1 集成开发环境就是一个一系列开发工具组合套装
1.解释组成
1.编辑器:在vs上编写代码
2.编译器:将高级语言编译成计算机语言
3.链接器:将中间文件及其第三方库的链接可执行的文件
4.调试器:调试软件bug
5.项目管理工具:对程序涉及到的所有资源进行管理,包括源文件,图片,第三方库等;ui各种界面
这些工具通常被打包在一起就是visul studio2019,visul c++6.0,pycharm 等通常统称集成开发环境(IDE,integrated Development Environment)
2.程序开发流程
编辑程序
编译程序
链接程序
调试程序
运行程序
打包程序
PART2 编辑程序
解释:
需要用到编辑器,用来编写代码
如:记事本,visul studio2019, vscode等
如何编码?
运用英文的标点符号
为了提高效率 vs可以简写tab快速输入
Ctrl+滚轮调整画面大小
鼠标某个变量/函数,点击右键可以转到定义,或者查找所有引用然后弹出调用窗口,或者按f1跳到帮助文档
折叠代码器#region
自动对齐代码ctrl+a(全部选择) ctrl+k–ctrl+d(自动对齐)
注释功能
解释:作用就是注销+解释
1.函数注释///
///
/// 解释:两数相加
/// 变量1
/// 变量2
/// 返回值:变量1+变量2
///
这个格式是自定义 ,因为自动生成那种不那么的完美
2.单行注释//
以开头//进行注释
声明局部变量后面进行解释或者有很长的一些不太直观大的逻辑进行备注解释
(快捷键:ctrl+k,crtl+c)
3.多行注释/…/
进行多行注释
4.文件型修饰(自定义注释)
一般放在头部
案例:
//***************************************
// …
//文件:
//作者:
//日期:
//引用(using)
//修改日志:
// 修改人员:
// 修改日期:
// 修改内容:
//…
//****************************************
注释提高代码的可读性,并不会被执行
工具栏快捷,或快捷键
可以注释无效代码
编码规范
一行只写一行变量
尽量局部变量靠近要使用的地方进行定义声明
使用空行将一段段的代码分割开,提高可读性(距离产生美),局部变量与方法间空行分隔
一行代码不要太长,控制合适长度,尽量屏幕视角可以全部看到
{}尽量单独一行,提升美观
代码的自动缩进(工具选项——文本编辑器——c#-制表符)
关键语句写注释
别在变量直接用固定的数值,尽量用常量代替
PART3 编译程序(Compile)
解释:
编译器(Compiler)他就是翻译官,把代码翻译成机器能读懂的语言
补充:
1.C#编译器就是csc.exe
路径C:\Windows\Microsoft.Net\Framework64\v4.0.1…
代码的对错,编译器说了算
把程序编译成机器语言exe文件,运行时不需要重新编译,直接使用编译结果就行,但是c#不适宜有点区别。
可以用记事本打开sln解决方案文件修改路径文件的命名
A.预处理指令(预编译指令)
解释:
在编译器进行编译之前对代码进行初步的转换
预处理过程先与编译器对源代码进行编译处理
规范:
所有的预处理指令都是以#开始,加上空格
预处理指令不是语句,所以他们不以分号结束
案例:
如 # region #
为什么需要预处理指令?
1.可以选择性的编译与屏蔽代码,节省内存,用于在项目开发前构思框架预先编写的时候使用或者测试时候,不会被编译进exe文件中, 如#if #else #endif
2.与一些系统信息的参数的调用与执行等等 #warnin,#pragma warning disable
C.警告warning与错误error
#warning 发出一条警报
#error 发出一条错误
#pragma warning disable屏蔽警告的代号
属性-生成-取消警告 效果与上面一样
D…NET两次编译
第一阶段:把 c# 编写成编译器上通过 CLS 转换在中间语言 IL 或者 MSIL 形成 exe
第二阶段:当 exe 要执行时会在 CLR 进行即时编译 JIT 成当前机器可以执行的语言
PART4 .托管代码与非托管代码
1.托管代码
需要托管CLR进行二次编译才能执行的代码
托管语言:C#,java
优点:跨语言集成,跨语言异常处理,增强的安全性(不会对系统造成损害)
2.非托管代码
直接编译成特定操作系统运行,如果跟换系统要重新编译
非托管语言:C,C++
优点:执行效率块
区别
1.托管代码时中间语言,运行在clr上
2.非托管被编译在机器上,运行在机器上
例如垃圾自动回收
PART5 链接程序(link)
解释:
又称链接器,将多个由编译器生成库文件,链接为一个可执行程序exe
PART6 调试程序(debug)重要
解释:
在程序运行中监制程序是否能达到预期要求与效果
1.编译与调试区别
编译时编译器在程序没有运行时帮你检查语法错误
调试时运行调试器在程序运行时,根据结果检查运行的结果是否错误
2.调试代码
快捷键:
F5开始调试
F9设置断点 打在要监视的变量语句下一条语句下面
F10逐过程 遇到函数调用不进入函数
F11逐单行 单行走
F12转到定义
调试技巧:
1.鼠标方上去
2.鼠标右键 添加监视
3.局部变量窗口(调试窗口里面)
4.断点窗口
5.引用(调用)窗口的运用
6.调试窗户
3.Debug与Release x86 x64
解释:
Debug:调试文件 较大,不做优化,包含调试信息,便于程序员调试程序,运行速度慢
Release:发布文件 相对小,优化过,没有调试信息,运行速度快
一般debug没有bug就可以发布release
Debug才可以打断点,包含调试信息
4.常见bug总结
PART7 运行程序
执行机制步骤:
进程需要执行机构,就是cpu,当程序编译后存在硬盘(外存),一般exe存在外存里 ,数据存在内存里
我们以计算机为例:
1.双击计算器图案
2.发送指令给操作系统,操作系统会在硬盘中找到你安装的计算机软件,操作系统将相关指令和数据加载到内存对应的地址,而在内存放着一条条的指令和数据中运行
3.等待cpu开始调度计算器程序,软件启动运行,开始执行Main函数
补充:linux不是exe文件
五、计算机硬件
PART1.计算机硬件
解释:
一套完整的计算机系统分为:计算机硬件,操作系统,应用程序
硬件:执行机构与显示机构,用于输入输出存储数据显示数据操作数据,需要与操作系统配合
操作系统:是管理计算机硬件与软件资源的计算机程序,用于接受外部指令,控制用剑和应用软件
应用软件:认为编写的人机操作实现功能的软件
硬件组成:
1.控制器:
计算机指挥系统
2.运算器:
实现算法逻辑运算,对信息进行处理运算的部件(Arit