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 Writeline
static void Test1()
{
Console.Write("请输入学员姓名:"); //输入的位置与注释在同一行
Console.WriteLine("请输入学员姓名:");//输入的位置与注释非同一行
}
#endregion //折叠语句
#region //Readline
static void Test2()
{
Console.Write("请输入学员姓名:");//输入学员姓名
string name = Console.ReadLine(); //读取控制台的信息给name
//从控制台读取和写入的信息都是字符串类型
Console.Write("请输入学员成绩:");//输入学员成绩
int score =int.Parse ( Console .ReadLine ());//需要将读取的字符转换成int
Console.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(); //读取控制台的信息给name
Console.Write("请输入学员成绩:");//输入学员成绩
int score = int.Parse(Console.ReadLine());//需要将读取的字符转换成int
Console.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);
//格式化方法2
string 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+b
a -= b;//a=a-b
a *= b;//a=a*b
result = a % b;//a对b取余
// c++; //c=c+1
// c--;//c=c-1
//++c;//c=c+1
// --c;//c=c-1
Console.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;//转换成整型会报错
强制转换:当目标类型小于使用的数据类型
<