1、c#基础
1.0 c#介绍
特点
C# 的发音为“C Sharp”,是一门由微软开发并获得了 ECMA(欧洲计算机制造商协会)和 ISO(国际标准组织)批准的现代的、通用的、面向对象的编程语言。
C# 由 Anders Hejlsberg 及其团队在.Net Framework的开发过程中开发,属于 .Net Framework 的一部分,可以用来编写 .Net 应用程序。C# 是专为 CLI (公共语言基础结构)设计的,CLI 由可执行代码和运行时环境组成,允许在不同的计算机平台和体系结构上使用各种高级语言。
C# 之所以能称为一门被广泛应用的编程语言,原因有以下几点:
-
C# 是一种现代的通用的编程语言
-
C# 是面向对象的;
-
C# 是面向组件的;
-
C# 简单易学;
-
C# 是一种结构化语言;
-
使用 C# 开发效率很高;
-
C# 可以在各种计算机平台上进行编译;
-
C# 是 .Net Framework 的一部分
借助 C# 编程语言,我们可以开发不同类型且安全可靠的应用程序,例如:
-
桌面应用程序;
-
网络应用程序;
-
分布式应用程序;
-
Web 服务应用程序;
-
数据库应用程序等。
NET Framework/.NET Corer
.NET Framework是微软公司推出的完全面向对象的软件开发与运行平台。.NET Framework具有两个主要组件:公共语言运行时(Common Language Runtime, CLR)和类库。 公共语言运行时:公共语言运行时(CLR)负责管理和执行由.NET编译器编译产生的中间语言代码。由于共语言运行库的存在,解决了很多传统编译语言的一些致命缺点,如垃圾内存回收、安全性检查等。 类库:类库我们比较好理解,就好比一一个大仓库里装满了工具。类库里有很多现成的类,可以拿来直接使用。例如,文件操作时,可以直接使用类库里的IO类。 .NETCore是适用于Windows、Linux和macOS的免费、开源托管的计算机软件框架,两者最直接的不同点便是他们的运行环境,.NET Framework只能在Windows环境下运行,但.NET Core是跨平台的
编译
C#语言是一种编译型语言,它的编译过程包括以下几个步骤:
-
语法分析(Parsing):C#源代码在被编译之前,需要进行语法分析,将源代码转换成语法树。语法分析器会检查源代码是否符合C#语言的语法规范,如果有语法错误,则会发出编译错误提示。
-
语义分析(Semantic analysis):在语法和词法分析完成后,编译器会进行语义分析,检查源代码是否符合C#语言的语义规范。语义分析器会检查变量的类型、作用域、函数调用等等,如果存在语义错误,则会发出编译错误提示。
-
代码优化(Code optimization):在语义分析完成后,编译器会进行代码优化,使生成的目标代码更加高效和优化。代码优化包括删除死代码、常量折叠、函数内联等等。
-
代码生成(Code generation):最后一步是代码生成,编译器会将优化后的中间代码转换成目标代码(通常是机器码),并将目标代码输出到磁盘上的可执行文件中。 这些步骤中的前三个是编译过程中最为重要的部分,它们保证了程序的正确性和可靠性,同时也为后面的代码优化和生成提供了必要的信息。
1.1 vs的安装
-
右键 以管理员身份运
-
继续
-
下载中
-
选择组件
只需要选择两个组件即可
-
-
web开发
-
-
-
.net桌面开发
-
-
选择安装位置
7.2 vs的使用
-
创建vs的快捷方式
-
创建快捷方式到桌面即可
-
创建新项目
-
创建控制台程序::c#基础
-
创建桌面应用:::winform
1 创建控制台程序
-
创建项目
-
指定项目名称和解决方案名称
-
视图
显示解决方案视图:::菜单栏--视图--解决方案
2 项目和解决方案的关系
1 项目和解决方案都是程序的容器 2 一个解决方案下面可以有多个项目 3 同一个解决方案下的多个项目之间 可以实现统一编译 部署 和调用 编译:::把我们写的c#代码(字符) 转化为 电脑可以执行的二进制文件(字节文件) 部署:::把程序安装到主机上 24处于互联网被访问状态 调用:::a项目使用b项目 简单理解:项目 一个独立的程序单体 解决方案 管理多个项目的文件夹
3 c#控制台项目的介绍
-
bin
bin目录用来保存项目生成后程序集,它有Debug(调试版本)和Release(发布版本)两个版本,分别对应的文件夹为bin/Debug和bin/Release,这个文件夹是默认的输出路径,我们可以通过:项目属性—>配置属性—>输出路径来修改。
在添加引用时,.NET会记录添加的引用绝对路径,这些设置保存在“每用户”文件中,(Solution.csproj.user),可以通过记事本打开查看。也可以在:项目属性—>通用属性—>引用路径里面查看。如果设置复制到本地为true,在生成项目时会自动拷贝该DLL到项目生成文件夹中(bin目录),否则不会拷贝。在生成项目时,对所添加的引用的是绝对路径,而在运行时程序集默认只在当前所在的路径下去找。要修改引用的路径,必须通过编程的方法去实现。使用References 对象。
在bin\debug\目录中有两个文件,除了要生成的.exe或.dll文件外,还有个.pdb文件,这个.pdb文件中就记录了代码中的断点等调试信息。一般移植或者打包程序只需要Debug文件即可,里面包含.exe文件、.dll文件、.ini文件、.xml文件、.pdb文件、.lib文件、.config、.manifest文件、.png文件、.gif文件、.cur文件、自定义文件夹等。
在\bin\release\目录下只有一个.exe或.dll文件,Release模式下不包含调试信息,并对代码进行了优化。
-
obj
obj目录是用来保存每个模块的编译结果,在.NET中,编译是分模块进行的,编译整个完成后会合并为一个.DLL或.EXE保存到bin目录下。因为每次编译时默认都是采用增量编译,即只重新编译改变了的模块,obj保存每个模块的编译结果,用来加快编译速度。是否采用增量编译,可以通过:项目属性—>配置属性—>高级—>增量编译来设置。
obj这个目录,在开发过程中可能会打乱乱,比如你的一个引用的dll,更新了,然后你在vs开发环境里面重新删除后,又重新引用,或者直接更新引用了。因为每次编译时默认都是采用增量编译的原因,所以,这个时候,不论你点多少次编译,你会疑惑,明明是更新引用了,为什么新更新的那些函数和接口不存在,这个时候,你可以手工吧obj目录都删除掉一下,然后重新引用下,就可以正确的看到你更新的那些接口和函数了。 这个事实说明,obj在开发过程中,也是会被引用到的,并不只是在编译的时候起作用。
都可以删掉, 重新编译又生成了
-
Properties
Properties文件夹 定义你程序集的属性 项目属性文件夹 一般只有一个 AssemblyInfo.cs 类文件,用于保存程序集的信息,如名称,版本等,这些信息一般与项目属性面板中的数据对应,不需要手动编写。 .cs 类文件。源代码都写在这里,主要就看这里的代码。 .resx 资源文件,一些资源存放在这里,一般不需要看。 .csproj C#项目文件,用VS打开这个文件就可以直接打开这个项目,自动生成,不需要看。 .csproj.user 是一个配置文件,自动生成的,会记录项目生成路径、项目启动程序等信息。也不需要看。 .Designer.cs 设计文件,自动生成,不需要看。 .aspx 是网页文件,HTML代码写在这里面。 .sln:在开发环境中使用的解决方案文件。它将一个或多个项目的所有元素组织到单个的解决方案中。此文件存储在父项目目录中.解决方案文件,他是一个或多个.proj(项目)的集合 *.sln:(Visual Studio.Solution) 通过为环境提供对项目、项目项和解决方案项在磁盘上位置的引用,可将它们组织到解决方案中。 比如是生成Debug模式,还是Release模式,是通用CPU还是专用的等
7.3 启动项目
-
写代码
static void Main(string[] args)
{
Console.WriteLine("我的第一个c#程序");//在控制台输入一行字符串
Console.ReadKey();//让控制台一直处于打开状态
}
-
启动项目
-

-
启动项目快捷键:f5
7.4 vs常用的快捷键
// ctrl系列 // z 撤回 // x 剪切 // c 复制 // v 粘贴 // a 全选 // s 保存 // f 搜索 // h 替换 // y 反撤销(撤销过了) // 不选中文本进行复制、剪切,会复制和剪切当前行 // home和end键:将光标移动到行首和行尾 // shift 字体切换、输入符号 // shift + 字母 输入大写或小写, 小写模式下shift+字母就是大写,大写模式下shift+字母就是小写 // shift + 鼠标点击 选中 // shift + home或end 从当前光标位置选中到行首或行尾 // alt + 上下 移动当前行或者选中的行 // alt + shift + 鼠标点击 插入一列光标 // alt + ctrl + 鼠标点击 插入多个光标 // del键 删除光标后面的字符 // 启动应用 F5 // 重启应用 ctrl+shift+F5
7.5 创建新项目
解决方案视图:::解决方案 右键--添加--添加新项目

-
输入项目名称
7.6 启动项目切换
项目启动---执行Main方法中的代码

-
方式1:
-
方式2:
项目右键::设置为启动项目:::
7.7 代码介绍
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
//using:::写的此文件 用到的其他文件
//namespace:::命名空间:::装类的文件夹
namespace demo01
{
//class :::类:::代码的载体
class Program
{
//Main方法:::方法::::程序的入口
//Main方法固定格式1::static void Main(string[] args)
//Main方法固定格式2::static void Main()
//Main方法固定格式3::static int Main(string[] args)
//Main方法固定格式4::static int Main()
static void Main()
{
//要执行的代码:::前期写的所有代码必须写在Main方法中
Console.WriteLine("我的第一个c#程序");//在控制台输入一行字符串::快捷键cw
Console.ReadKey();//让控制台一直处于打开状态
//注释:::对代码进行解释说明文字
// 作用:::让程序员对代码更容易理解
//注释分类::://单行注释
// /**/块注释
// ///文档注释:::一般用于类的说明
// region注释 这个注释用于划分代码块,主要的作用是告诉编译器该如何折叠代码
}
static void hehe() {
Console.WriteLine("我的第一个c#程序 heheh");
}
}
class Student { }
class Teacher { }
}
8 Console类
1 添加类

2 设置启动类

3 console
//学习Console:::控制台类
//1 打印数据并换行
Console.WriteLine("WriteLine:::打印并换行1");
Console.WriteLine("WriteLine:::打印并换行2");
//2 打印数据不换行
Console.Write("Write:::打印不换行1");
Console.Write("Write:::打印不换行2");
//3 获取键盘输入
//string line=Console.ReadLine();//接受控制台输入的内容
// Console.WriteLine("控制台获取的信息是:::"+line);
//4 获取一个键盘输入
//Console.ReadKey();
Console.WriteLine();//只打印一个换行
//5 控制台消息提示音
Console.Beep();
Console.Beep(2000,3000);//2000 音量单位 3000 时间单位
//6 啊设置颜色
Console.BackgroundColor = ConsoleColor.Yellow;
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine(11111);
Console.WriteLine(111122221);
Console.ReadKey();//获取键盘输入::阻止控制台关闭

更多推荐

所有评论(0)