VS Code 新建上位机项目---C#基础语法
- 1 基本概念
- 1.1 准备工具
- 1.2 新建项目
- 2 C#编程基础
- 2.1 命名空间和类
- 2.2 数据类型
- 2.3 控制台输入输出
- 2.3.1 输入输出: write 与 read
- 2.3.2 格式化 : string.Foramt() 与 $
- 2.3.3 赋值与运算
- 2.4 类型转换
- 2.4.1 数值类型之间的转换:(int)
- 2.4.2 字符串与数值类型之间的转化: .Parse() 与 .ToString()
- 2.4.3 强制转换 Convert.To
- 2.5 逻辑指令
- 2.5.1 选择语句: if(适合区间判断)
- 2.5.2 优先级与if else
- 2.5.3 三元运算符
- 2.5.4 多条件与嵌套: if - else if
- 2.5.5 分支结构:switch(适合等值判断)
- 2.5.6 循环结构: for
- 2.5.7 循环结构: while 条件循环
- 2.5.8 循环结构: do while
- 3 字符串与数组
- 3 .1 字符串
- 3.1.1 索引位置: IndexOf()获取长度: .Length属性,截取:Substring()
- 3.1.2 字符串比较: .Equals()
- 3.1.3 空值字符串
- 3.1.4 字符串去除空格: .Trim()
- 3.1.5 字符拼接: StringBuilder() 类
- 3.1.6 转义字符
- 3.2 数组
- 3.2.1 数组的定义
- 3.2.2 元素的遍历: foreach(int element in Data)
- 3.2.3 数组与字符串拼接:Split() 与 string.Join() 与Repalce()
- 4 值类型与引用类型
- 5 .NET底层类与C#关键字
- 6 常量与枚举
- 6.1 常量:const
- 6.2 枚举:enum
- 6.2.1 自定义枚举
- 6.2.2 系统枚举:对话框,星期
- 7 调试:debug
1 基本概念
1.1 准备工具
- 安装 VS Code 2022 社区版
- 安装 MySql 2019
- 安装 .NETFrameWork .NET 8.0
1.2 新建项目
- 打开VS Code。新建项目。选择控制台应用(.NET Framwork)
- 修改项目名称,存储位置,框架( .NET 4.0/4.6对应VS Code2019),这里选择( .NET 4.8 来适配VS Code2022,因为是基于 .NET Framework 框架开发的,所以必须要选择合适的版本。点击创建。
- VS code 默认创建了一个新的控制台项目。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace HMI_Test
{
//项目的组成部分internal class Program{static void Main(string[] args){}}
}
解决方案:
(1)Properties:项目的属性信息,程序集AssemblyInfo。
(2)引用:需要调用计算机或者第三方配置的东西。(有时项目到其它电脑无法运行,就是因为引用的东西不存在)
(3)App.config:运行时使用的参数。
(4)C# Program:项目入口文件,程序从这里开始执行。
2 C#编程基础
2.1 命名空间和类
类是程序的基本单元,实现封装要处理的库或者是具体的处理过程
using System; //引入的命名空间
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; //引用namespace HMI_Test //命名空间
{internal class Program //类的名称{//字段,属性,构造方法等等static void Main(string[] args) //方法{}}
}
(1)命名空间
【1】必须要有:任何一个类都要属于一个特定的命名空间。
【2】用于管理:通过命名空间更好的对“类”进行分类管理,
【3】自己规划:一个项目可以根据实际需要,开发者自己划分若干命名空间。
【4】默认名称:默认命名空间和项目名称相同。
【5】使用方法:用“.”来分割,但是不表示包含关系。(理解成层次关系)【6】特别注意:不能以数字、特殊字符开头,也不建议用中文。
(2)引入时机
【1】情况1:如果两个类所在的命名空间不同.
【2】方法1:其中一个类使用另一个类,则要引入命名空间(使用using)或者“限定名”
【3】情况2:如果两个类所在的类库不同。
【4】方法2:先引入类库,再引入命名空间。
2.2 数据类型
int data1 = 16
double data2 = 20.0 //浮点双精度
float data3 =20.0f //浮点单精度
string name ="你好世界" ; //字符串
char name1 ='2'; //字符
bool stop = false;
bool start = ture;
DateTime dt = Convert.ToDateTime()
- 变量
变量是数据的存储空间,可以理解为存储地址的别名
数据类型 变量名称 变量值
2.3 控制台输入输出
2.3.1 输入输出: write 与 read
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml.Linq;namespace Thinger.ConsoleAndOperation
{internal class Program{static void Main(string[] args){//Test1(); //调用方法Test1();Console.ReadLine();//读取}#region //Write and Writelinestatic void Test1(){Console.Write("请输入学员姓名:"); //输入的位置与注释在同一行Console.WriteLine("请输入学员姓名:");//输入的位置与注释非同一行}#endregion //折叠语句#region //Readlinestatic void Test2(){ Console.Write("请输入学员姓名:");//输入学员姓名string name = Console.ReadLine(); //读取控制台的信息给name//从控制台读取和写入的信息都是字符串类型Console.Write("请输入学员成绩:");//输入学员成绩int score =int.Parse ( Console .ReadLine ());//需要将读取的字符转换成intConsole.WriteLine("姓名:"+name+ " 成绩:"+score);//显示}#endregion
控制台输入输出都是字符串,write/read与writeline/readline之间的差距就是是否有换行
2.3.2 格式化 : string.Foramt() 与 $
#region //字符串的格式化方法string.Foramt() 和 $static void Test3(){Console.Write("请输入学员姓名:");//输入学员姓名string name = Console.ReadLine(); //读取控制台的信息给nameConsole.Write("请输入学员成绩:");//输入学员成绩int score = int.Parse(Console.ReadLine());//需要将读取的字符转换成intConsole.Write("请输入学员班级:");//输入学院班级string classname= Console.ReadLine();//普通拼接string result = "姓名:" + name + " 成绩:" + score + " 班级:" + classname;Console.WriteLine(result);//格式化方法1 string.Format(result,classname)string result1 =string.Format("姓名:{0} 成绩:{1} 班级: {2}",name,score,classname);Console.WriteLine(result1);// Console.WriteLine("姓名:{0} 成绩:{1} 班级: {2}",name,score,classname);//格式化方法2string result2 = $"姓名:{name} 成绩:{score} 班级: {classname}";Console.WriteLine(result2);//Console.WriteLine($"姓名:{name} 成绩:{score} 班级: {classname}");}#endregion
//货币格式
int money=5000;
string moneyType = string.Format(“总金额:{0:C}”,money);
Console.Writeline($"总金额:{money:C}")
//保留小数点
double num = 5.6666;
double num1 = num.ToString("0.00");//保留两位小数
double num1 = num.ToString("0.000");//保留三位小数
2.3.3 赋值与运算
#region //赋值与运算符static void Test4(){int a = 16; // 赋值int b = 20;int c = 12;int result = a + b;Console.WriteLine ($"结果 {result}");a += b;//a=a+ba -= b;//a=a-ba *= b;//a=a*bresult = a % b;//a对b取余// c++; //c=c+1// c--;//c=c-1//++c;//c=c+1// --c;//c=c-1Console.WriteLine($"c={c++}");//先输出c的值,再执行++Console.WriteLine($"c={++c}");//先执行++,再输出c的值string name1 = "James";string name2 = "jacks";string name3 = "James";// bool result1=name1.Equals(name2);//指令的等于// Console.WriteLine(result1);Console.WriteLine(name1 == name2);//运算符等于Console.WriteLine(name1 != name2);//运算符不等于Console.WriteLine(a > b);Console.WriteLine(a <= b);}#endregion}
}
2.4 类型转换
2.4.1 数值类型之间的转换:(int)
自动转换:目标类型大于使用的数据类型就可以实现自动类型
double a = 100.5;//双精度浮点
int b =200;//整型
double result = a+b;//转换成双精度浮点可以运行
int result2 = a+b;//转换成整型会报错
强制转换:当目标类型小于使用的数据类型
<