【1】VS Code 新建上位机项目---C#基础语法

news/2025/2/25 23:25:35

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 准备工具

  1. 安装 VS Code 2022 社区版
  2. 安装 MySql 2019
  3. 安装 .NETFrameWork .NET 8.0

1.2 新建项目

  1. 打开VS Code。新建项目。选择控制台应用(.NET Framwork)
    在这里插入图片描述
  2. 修改项目名称,存储位置,框架( .NET 4.0/4.6对应VS Code2019),这里选择( .NET 4.8 来适配VS Code2022,因为是基于 .NET Framework 框架开发的,所以必须要选择合适的版本。点击创建。
    在这里插入图片描述
  3. 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 = falsebool start = ture;
DateTime dt = Convert.ToDateTime()
  1. 变量

变量是数据的存储空间,可以理解为存储地址的别名

数据类型 变量名称 变量值

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=5000string 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;//转换成整型会报错

强制转换:当目标类型小于使用的数据类型

<

http://www.niftyadmin.cn/n/5866959.html

相关文章

python中格式化输出知识点汇总

在Python中&#xff0c;格式化输出是一种常见的操作&#xff0c;用于将数据以特定的格式展示。以下是Python中格式化输出的主要方法&#xff1a; 1. 使用 % 操作符 这是Python早期版本中常用的格式化方法&#xff0c;类似于C语言中的 printf 。 基本语法 &#xff1a; "…

在PyCharm中集成AI编程助手并嵌入本地部署的DeepSeek-R1模型:打造智能开发新体验

打造智能开发新体验&#xff1a;DeepSeekPycharmollamaCodeGPT 目录 打造智能开发新体验&#xff1a;DeepSeekPycharmollamaCodeGPT前言一、什么是ollama&#xff1f;二、如何使用1.进入ollama官方网站:2.点击下载ollama安装包3.根据默认选项进行安装4.安装成功5.打开命令提示符…

lua-游戏红点提示系统抽象设计

文章目录 前言一、定义红点节点类型二、节点注册与管理三、状态更新与冒泡机制 四、示例配置与使用五、结构示意图六、关键机制说明总结 前言 在游戏开发中&#xff0c;红点提示系统可以通过树形结构和策略模式进行抽象&#xff0c;实现高扩展性。以下是基于Lua的实现方案&…

DPVS-5: 后端服务监控原理与测试

后端监控原理 被动监测 DPVS自带了被动监控&#xff0c;通过监控后端服务对外部请求的响应情况&#xff0c;判断服务器是否可用。 DPVS的被动监测&#xff0c;并不能获取后端服务器的详细情况&#xff0c;仅仅通过丢包/拒绝情况来发觉后端服务是否可用。 TCP session state…

nuxt实现原理

Nuxt.js 是一个基于 Vue.js 的框架&#xff0c;旨在简化和增强 Vue 应用的开发。Nuxt 主要用于构建服务端渲染&#xff08;SSR&#xff09;和静态生成的 Vue 应用&#xff0c;它自动处理了一些 Vue 应用的常见问题&#xff0c;如路由配置、服务器端渲染等。下面是 Nuxt.js 的实…

Go语言--语法基础2--下载安装

2、下载安装 1、下载源码包&#xff1a; go1.18.4.linux-amd64.tar.gz。 官方地址&#xff1a;https://golang.google.cn/dl/ 云盘地址&#xff1a;链接&#xff1a; https://pan.baidu.com/s/1N2jrRHaPibvmmNFep3VYag 提 取码&#xff1a; zkc3 2、将下载的源码包解压…

数据库面试题(基础常考!!!)

在数据库领域&#xff0c;无论是日常开发还是面试场景&#xff0c;都有一些高频且重要的问题需要我们深入理解和掌握。本文将对这些常见面试题进行详细阐述&#xff0c;帮助大家更好地应对面试和实际工作中的挑战。 面试题一&#xff1a;三范式详解 什么是三范式 三范式是关…

QT 引入Quazip和Zlib源码工程到项目中,无需编译成库,跨平台,加密压缩,带有压缩进度

前言 最近在做项目时遇到一个需求&#xff0c;需要将升级的文件压缩成zip&#xff0c;再进行传输&#xff1b; 通过网络调研&#xff0c;有许多方式可以实现&#xff0c;例如QT私有模块的ZipReader、QZipWriter&#xff1b;或者第三方库zlib或者libzip或者quazip等&#xff1…