Chapter1:初见C#
参考书籍:《C#边做边学》;
1.初见C#
1.1 C#简介
-
C # {\rm C\#} C#编写了许多完成常用功能的程序放在系统中,把系统中包含的内容按功能分成多个部分,每部分放在一个命名空间中,导入命名空间语法格式如下:
// C#导入命名空间语法格式: using 命名空间;
-
C # {\rm C\#} C#要求程序中的每一个元素都要属于一个类,程序的所有内容都必须属于一个类, C # {\rm C\#} C#类定义语法格式如下:
// C#类定义语法格式: class 类名 {类体 }
-
M a i n ( ) {\rm Main()} Main()方法, C # {\rm C\#} C#程序中,程序的执行从 M a i n ( ) {\rm Main()} Main()方法开始,一个程序中不允许出现两个或两个以上的 M a i n ( ) {\rm Main()} Main()方法, M a i n ( ) {\rm Main()} Main()方法必须包含在一个类中, M a i n ( ) {\rm Main()} Main()方法代码如下:
static void Main()
-
C # {\rm C\#} C#程序注释,分为单行注释和多行注释:
- 单行注释:使用"//"表示其后面内容为注释内容;
- 多行注释:使用"/*“、”*/“组成多行注释符号,”/*“、”*/"符号间的内容均为注释内容;
-
C # {\rm C\#} C#控制台输入输出:
-
控制台输入/输出通过命名空间的 C o n s o l e {\rm Console} Console类实现,其提供从控制台读写字符的基本功能;
-
控制台输入通过 C o n s o l e {\rm Console} Console类的 R e a d ( ) {\rm Read()} Read()方法和 R e a d L i n e ( ) {\rm ReadLine()} ReadLine()方法实现,控制台输出通过 C o n s o l e {\rm Console} Console类的 W r i t e ( ) {\rm Write()} Write()方法和 W r i t e L i n e ( ) {\rm WriteLine()} WriteLine()方法实现;
-
C o n s o l e . W r i t e L i n e ( ) {\rm {Console.WriteLine()}} Console.WriteLine()方法:将信息输出到控制台,在输出信息后面添加一个回车换行符,用来产生一个新行;
-
C o n s o l e . W r i t e ( ) {\rm {Console.Write()}} Console.Write()方法:将信息输出到控制台,输出到屏幕后不会产生一个新行;
-
输出格式化语法:
// 输出格式化语法(Console.WriteLine()和Console.Write()类似): // Console.WriteLine()为例: Console.WriteLine("{N[,M][:格式化字符串]}");// 参数说明: // {}:用来在输出字符串中插入变量; // N:表示输出变量的序号,从0开始; // [,M][:格式化字符串]:M表示输出的变量所占的字符个数,当M的值为负数时,输出变量按左对齐方式排列; // 当M的值为正数时,输出变量按右对齐方式排列; // [:格式化字符串]:指定输出字符串的格式,使用Xn形式指定输出字符串的格式,X指定数字的格式,n指定精度; // 格式字符D、d:将数据转换成整数类型格式;// 实例: int iNumber = 1234; Console.WriteLine("{0:D}", iNumber); // 结果:1234; Console.WriteLine("{0:d3}", iNumber); // 结果:1234; Console.WriteLine("{0:d5}", iNumber); // 结果:01234;
-
1.2 第一个控制台应用程序
// CH01_01.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace CH01_01
{class CH01_01{static void Main(){Console.WriteLine("Hello C#.");Console.WriteLine("Welcome to FUXI AI.");}}
}
// CH01_01.cs执行结果:
Hello C#.
Welcome to FUXI AI.
几个常见工程文件:
- C H 01 _ 01. s l n {\rm CH01\_01.sln} CH01_01.sln:解决方案文件,扩展名 s l n {\rm sln} sln是 s o l u t i o n {\rm solution} solution的缩写,双击即可打开工程;
- C H 01 _ 01. c s {\rm CH01\_01.cs} CH01_01.cs:工程代码文件,扩展名 c s {\rm cs} cs是 C S h a r p {\rm C\ Sharp} C Sharp的缩写;
- b i n {\rm bin} bin\ D e b u g {\rm Debug} Debug下, C H 01 _ 01. e x e {\rm CH01\_01.exe} CH01_01.exe为可执行文件,双击即可执行;
1.3 Windows应用程序简介
- C # {\rm C\#} C#中添加控件:
- 控件表示用户和程序间的图形化连接,控件提供或处理数据、接受用户输入、对事件做出响应或执行连接用户和应用程序的其他功能;
- 添加控件实例:向窗体中添加按钮 ( B u t t o n ) ({\rm Button}) (Button),即在 V i s u a l S t u d i o {\rm Visual\ Studio} Visual Studio工具箱中单击按钮 ( B u t t o n ) ({\rm Button}) (Button),把按钮拖动到窗体预定位置,然后释放鼠标添加完成;
- 控件属性:
- C # {\rm C\#} C#中所有窗体控件,如:标签控件、文本框控件、按钮控件等都继承于 S y s t e m . W i n d o w s . F o r m s . C o n t r o l {\rm System.Windows.Forms.Control} System.Windows.Forms.Control;
- C o n t r o l {\rm Control} Control类作为各种窗体控件的基类,实现了所有窗体交互控件的基本功能,如:处理用户键盘输入、处理消息驱动、限制控件大小等;
- C o n t r o l {\rm Control} Control类的属性、方法、事件是所有窗体控件公有的, C o n t r o l {\rm Control} Control类的属性描述了一个窗体控件的所有公共属性;
- 常用控件属性:
- N a m e {\rm Name} Name属性:每个控件都有一个名字 ( N a m e ) ({\rm Name}) (Name)属性,在应用程序中,可以通过此属性来引用此控件; C # {\rm C\#} C#会给每个新添加的控件指定一个默认名,一般由控件类型和序号组成,如: b u t t o n 1 、 b u t t o n 2 、 t e x t B o x 1 、 t e x t B o x 2 {\rm button1、button2、textBox1、textBox2} button1、button2、textBox1、textBox2;
- T e x t {\rm Text} Text属性: C # {\rm C\#} C#中,每个控件对象都有 T e x t {\rm Text} Text属性,是与控件对象实例关联的一段文本,用户可以查看或进行输入;如:在标签控件中显示的文本、在文本框中用户输入的文字、组合框和窗体中的标题等都是用控件的 T e x t {\rm Text} Text属性进行设定;
- 控件方法:通过调用 C o n t r o l {\rm Control} Control类的方法来获得控件的一些信息,或设置控件的属性值及行为状态,如: F o c u s {\rm Focus} Focus方法可设置此控件获得的焦点, R e f r e s h {\rm Refresh} Refresh方法可重画控件, S e l e c t {\rm Select} Select方法可激活控件, S h o w {\rm Show} Show方法可显示控件等;
- 控件事件: C # {\rm C\#} C#中用户进行某一项操作时,会引发某个事件的发生,此时会调用事件处理程序代码,实现对程序的控制,事件驱动实现基于窗体消息传递和消息循环机制;如:单击时发生的 C l i c k ( ) {\rm Click()} Click()事件,双击时发生的 D o u b l e C l i c k ( ) {\rm DoubleClick()} DoubleClick()事件,取得焦点时发生的 G e t F o c u s ( ) {\rm GetFocus()} GetFocus()事件,鼠标移动时发生的 M o u s e M o v e ( ) {\rm MouseMove()} MouseMove()事件等;
1.4 第一个Windows应用程序
-
新建 W i n d o w s {\rm Windows} Windows应用程序,项目名称: C H 01 _ 02 {\rm CH01\_02} CH01_02,在文件 F o r m 1. c s {\rm Form1.cs} Form1.cs重命名为 C H 01 _ 02. c s {\rm CH01\_02.cs} CH01_02.cs;
-
在已生成的窗体单击,修改窗口的属性, N a m e {\rm Name} Name属性改为:“ C H 01 _ 02 {\rm CH01\_02} CH01_02”, T e x t {\rm Text} Text属性改为: C H 01 _ 02 {\rm CH01\_02} CH01_02;
-
V i s u a l S t u d i o {\rm Visual\ Studio} Visual Studio的左侧"工具箱"窗口,拖动 W i n d o w s {\rm Windows} Windows控件放置窗口中:
- 拖动 L a b e l {\rm Label} Label控件,修改" N a m e {\rm Name} Name“属性: I n f o D i s p l a y {\rm InfoDisplay} InfoDisplay,” T e x t {\rm Text} Text“属性:空,” B a c k C o l o r {\rm BackColor} BackColor"属性: W i n d o w s {\rm Windows} Windows;
- 拖动 B u t t o n {\rm Button} Button控件,修改" N a m e {\rm Name} Name“属性: b t n B u t t o n {\rm btnButton} btnButton,” T e x t {\rm Text} Text"属性:点击显示;
-
窗体设计如下:
-
双击按钮 ( B u t t o n ) ({\rm Button}) (Button)进入代码设计,代码如下:
// CH01_02.cs using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;namespace CH01_02 {public partial class CH01_02 : Form{public CH01_02(){InitializeComponent();}private void btnButton_Click(object sender, EventArgs e){this.InfoDisplay.Text = "Welcome to FUXI AI.";}private void CH01_02_Load(object sender, EventArgs e){}} }
-
C t r l + F 5 {\rm Ctrl+F5} Ctrl+F5执行,点击"点击显示"按钮,结果如下:
1.5 简易AGV运行控制界面
项目需求:搭建 A G V {\rm AGV} AGV简易控制系统,设置 5 5 5个按钮,包括向前、向后、向左、向右、停止按钮,点击按钮显示对应的信息,简易控制系统界面如下:
-
新建" W i n d o w s {\rm Windows} Windows"应用程序,在设计窗口拖动 5 5 5个按钮 ( B u t t o n ) ({\rm Button}) (Button)和 1 1 1个标签 ( L a b e l ) ({\rm Label}) (Label),其 N a m e {\rm Name} Name属性和 T e x t {\rm Text} Text属性如下:
- 设计窗口属性: N a m e {\rm Name} Name属性为 C H 01 _ 03 {\rm CH01\_03} CH01_03, T e x t {\rm Text} Text属性为 A G V C o n t r o l S y s t e m {\rm AGV\ Control\ System} AGV Control System;
- " G O F O R W A R D {\rm GO\ FORWARD} GO FORWARD"按钮: N a m e {\rm Name} Name属性为 f o r w a r d B u t t o n {\rm forwardButton} forwardButton, T e x t {\rm Text} Text属性为 G O F O R W A R D {\rm GO\ FORWARD} GO FORWARD;
- " S T O P {\rm STOP} STOP"按钮: N a m e {\rm Name} Name属性为 s t o p B u t t o n {\rm stopButton} stopButton, T e x t {\rm Text} Text属性为 S T O P {\rm STOP} STOP;
- " G O B A C K W A R D {\rm GO\ BACKWARD} GO BACKWARD"按钮: N a m e {\rm Name} Name属性为 b a c k w a r d B u t t o n {\rm backwardButton} backwardButton, T e x t {\rm Text} Text属性为 G O B A C K W A R D {\rm GO\ BACKWARD} GO BACKWARD;
- " T U R N L E F T {\rm TURN\ LEFT} TURN LEFT"按钮: N a m e {\rm Name} Name属性为 l e f t B u t t o n {\rm leftButton} leftButton, T e x t {\rm Text} Text属性为 T U R N L E F T {\rm TURN\ LEFT} TURN LEFT;
- " T U R N R I G H T {\rm TURN\ RIGHT} TURN RIGHT"按钮: N a m e {\rm Name} Name属性为 r i g h t B u t t o n {\rm rightButton} rightButton, T e x t {\rm Text} Text属性为 T U R N R I G H T {\rm TURN\ RIGHT} TURN RIGHT;
- " i n f o D i s p l a y {\rm infoDisplay} infoDisplay"标签: N a m e {\rm Name} Name属性为 i n f o D i s p l a y {\rm infoDisplay} infoDisplay, T e x t {\rm Text} Text属性为空格;
-
实现程序:
// CH01_03.cs using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;namespace CH01_03 {public partial class CH01_03 : Form{public CH01_03(){InitializeComponent();}private void forwardButton_Click(object sender, EventArgs e){this.infoDisplay.Text = "AGV is going forward...";}private void stopButton_Click(object sender, EventArgs e){this.infoDisplay.Text = "AGV STOP.";}private void backwardButton_Click(object sender, EventArgs e){this.infoDisplay.Text = "AGV is going backward...";}private void leftButton_Click(object sender, EventArgs e){this.infoDisplay.Text = "AGV is turning left...";}private void rightButton_Click(object sender, EventArgs e){this.infoDisplay.Text = "AGV is turning right...";}} }
-
运行效果:
相关文章:
Chapter1:初见C#
参考书籍:《C#边做边学》; 1.初见C# 1.1 C#简介 C # {\rm C\#} C#编写了许多完成常用功能的程序放在系统中,把系统中包含的内容按功能分成多个部分,每部分放在一个命名空间中,导入命名空间语法格式如下: /…...
SQL-leetcode—620. 有趣的电影
620. 有趣的电影 表:cinema ------------------------ | Column Name | Type | ------------------------ | id | int | | movie | varchar | | description | varchar | | rating | float | ------------------------ id 是该表的主键(具有唯一值的列)。 每行包含…...
《鸿蒙Next平台:决策树面对噪声数据的鲁棒性逆袭》
在机器学习领域,决策树是一种强大的模型,但训练数据中的噪声往往会影响其性能和鲁棒性。在鸿蒙Next平台上,我们可以采用多种策略来增强决策树模型在面对噪声数据时的鲁棒性。 数据预处理层面 数据清洗:利用鸿蒙Next平台的数据处理…...
minio https配置
如果使用了官网的教程 使用minio-user作为启动用户 准备好:文件名要定死,因为minio只认识key和crt文件 将xxxxx.key重命名为private.key 将xxxxx.pem重命名为public.crt 将这两个文件放到/home/minio-user/.minio/certs/ 目录下 chown -r minio…...
Windows重装后NI板卡LabVIEW恢复正常
在重新安装Windows系统后,NI(National Instruments)板卡能够恢复正常工作,通常是由于操作系统的重新配置解决了之前存在的硬件驱动、兼容性或配置问题。操作系统重装后,系统重新加载驱动程序、清理了潜在的冲突或损坏的…...
Spring Initializr创建springboot项目 “java: 错误: 无效的源发行版:19”
我用的1.8的jdk,排查发现这是jdk和springboot版本冲突导致的。 1、File->Project Structure->Module->source和dependancies改成相应的版本 2、File->Setting->Build,Execution,Deployment->Compiler->Java Compiler->target bytecode ver…...
Vue computed属性原理及其惰性求值特点
1,computed属性 在 Vue.js 中, computed 属性是 Vue 响应式系统的一个核心特性,它允许开发者声明式地描述一个依赖其他响应式属性的计算值。 computed 属性是基于它们的依赖进行缓存的,只有当依赖发生变化时,它们才会…...
关于在 Kotlin DSL 中,ndk 的配置方式
在 Kotlin DSL 中,ndk 的配置方式有所不同,取决于 Android Gradle 插件版本。ndk { abiFilters(…) } 在 Kotlin DSL 中实际上是 externalNativeBuild 的一部分,需要通过正确的上下文调用。 错误代码: ndk {abiFilters("ar…...
机器学习(一)
一, Supervised Machine Learning (监督机器学习) 1,定义:学习X到Y或输入到输出的映射的算法,学习算法从正确答案中学习。即教机器 如何做事情(数据集学习算法模型),根据已有的数据集,知道输入和输出结果 之间的关系,并根据这…...
得物App再迎开放日,全流程体验正品查验鉴别
近日,得物App超级品质保障中心再度迎来了开放日活动。近60位得物App的用户与粉丝齐聚超级品质保障中心,全流程体验正品查验鉴别。开放日当天,参与者有机会近距离观察得物App的商品质检区、鉴别区、收发流转区、实验室和正品库等关键功能区&am…...
《leetcode-runner》【图解】【源码】如何手搓一个debug调试器——表达式计算
前文: 《leetcode-runner》如何手搓一个debug调试器——引言 《leetcode-runner》如何手搓一个debug调试器——架构 《leetcode-runner》如何手搓一个debug调试器——指令系统 《leetcode-runner》【图解】如何手搓一个debug调试器——调试程序【JDI开发】【万字详解…...
Flink概述
一、Flink是什么 二、Flink特点 三、Flink vs SparkStreaming 表 Flink 和 Streaming对比 Flink Streaming 计算模型 流计算 微批处理 时间语义 事件时间、处理时间 处理时间 窗口 多、灵活 少、不灵活(窗口必须是批次的整数倍) 状态 有 …...
【Linux】信号
目录 一、信号的概念二、信号的产生2.1 通过键盘进行信号的产生2.2 通过系统调用进行信号的产生2.2.1 kill函数2.2.2 raise函数2.2.3 abort函数 2.3 通过异常的方式进行信号的产生2.4 通过软件条件的方式进行信号的产生2.4.1 关闭管道读端2.4.2 alarm函数 2.5 Core Dump&#x…...
【漏洞分析】DDOS攻防分析
0x00 UDP攻击实例 2013年12月30日,网游界发生了一起“追杀”事件。事件的主角是PhantmL0rd(这名字一看就是个玩家)和黑客组织DERP Trolling。 PhantomL0rd,人称“鬼王”,本名James Varga,某专业游戏小组的…...
【js进阶】设计模式之单例模式的几种声明方式
单例模式,简言之就是一个类无论实例化多少次,最终都是同一个对象 原生js的几个辅助方式的实现 手写forEch,map,filter Array.prototype.MyForEach function (callback) {for (let i 0; i < this.length; i) {callback(this[i], i, this);} };con…...
【VUE】计算属性+动态样式方法封装
【VUE】父子组件联动实现动态样式控制 【VUE】页面跳转实现动态样式控制 在utils下创建文件夹styleController 编写通用的方法 /*** 样式控制* 本文件主要提供一些动态控制样式的方法*//*** 控制表格表头中的 某些列 是否显示星号** param showStarActions boolean 当值为True时…...
Mac玩Steam游戏秘籍!
Mac玩Steam游戏秘籍! 大家好!最近有不少朋友在用MacBook玩Steam游戏时遇到不支持mac的问题。别担心,我来教你如何用第三方工具Crossover来畅玩这些不支持的游戏,简单又实用! 第一步:下载Crossover 首先&…...
【后端面试总结】tls中.crt和.key的关系
tls中.crt和.key的关系 引言 在现代网络通信中,特别是基于SSL/TLS协议的加密通信中,.crt和.key文件扮演着至关重要的角色。这两个文件分别代表了数字证书和私钥,是确保通信双方身份认证和数据传输安全性的基石。本文旨在深入探讨TLS中.crt和…...
【Axure】配色库
配色库是一个专为设计师和创意工作者打造的在线资源平台,旨在提供丰富的色彩解决方案,帮助用户轻松找到或创造美观和谐的色彩搭配。其中,一个典型的配色库包含了以下几个核心元素: 渐变色:提供多样化的渐变色方案&…...
PL/SQL语言的语法糖
PL/SQL语言的语法糖 引言 PL/SQL(Procedural Language/Structured Query Language)是Oracle公司为其数据库管理系统(DBMS)设计的一种过程化语言。作为一种扩展SQL的语言,PL/SQL不仅支持数据的查询和操作,…...
Pytorch|YOLO
🍨 本文为🔗365天深度学习训练营中的学习记录博客🍖 原作者:K同学啊 一、 前期准备 1. 设置GPU 如果设备上支持GPU就使用GPU,否则使用CPU import torch import torch.nn as nn import torchvision.transforms as transforms im…...
doc、pdf转markdown
国外的一个网站可以: Convert A File Word, PDF, JPG Online 这个网站免费的,算是非常厚道了,但是大文件上传多了之后会扛不住 国内的一个网站也不错: TextIn-AI智能文档处理-图像处理技术-大模型加速器-在线免费体验 https://…...
ZooKeeper 常见问题与核心机制解析
Zookeeper集群本身不直接支持动态添加机器。在Zookeeper中,集群的配置是在启动时静态定义的,并且集群中的每个成员都需要知道其他所有成员。当你想要增加一个新的Zookeeper服务器到现有的集群中时,你需要更新所有现有服务器的配置文件&#x…...
期权懂|场内期权合约行权价格是如何设定制度的?
锦鲤三三每日分享期权知识,帮助期权新手及时有效地掌握即市趋势与新资讯! 场内期权合约行权价格是如何设定制度的? 场内期权合约的行权价格是期权合约中的一个关键要素,它决定了期权买方在期权到期日或之前买入(对于…...
处理 SQL Server 中的表锁问题
在 SQL Server 中,表锁是一个常见的问题,尤其是在并发访问和数据更新频繁的环境中。表锁会导致查询性能下降,甚至导致死锁和系统停滞。本文将详细介绍如何识别、分析和解决 SQL Server 中的表锁问题。 什么是表锁? 表锁是 SQL S…...
【Mysql进阶知识】Mysql 程序的介绍、选项在命令行配置文件的使用、选项在配置文件中的语法
目录 一、程序介绍 二、mysqld--mysql服务器介绍 三、mysql - MySQL 命令行客户端 3.1 客户端介绍 3.2 mysql 客户端选项 指定选项的方式 mysql 客户端命令常用选项 在命令行中使用选项 选项(配置)文件 使用方法 选项文件位置及加载顺序 选项文件语法 使用举例&am…...
代码随想录算法训练营总结
本人是一名普普通通的计算机专业的毕业生,在大学学数据结构和算法就感觉非常难,到毕业也没刷过几道题,所幸后来入职的公司也没有考察算法相关的内容。到现在已经工作两年多了,看到过许多聊面试聊算法的文章,也接触到一…...
二进制/源码编译安装mysql 8.0
二进制方式: 1.下载或上传安装包至设备: 2.创建组与用户: [rootopenEuler-1 ~]# groupadd mysql [rootopenEuler-1 ~]# useradd -r -g mysql -s /bin/false mysql 3.解压安装包: tar xf mysql-8.0.36-linux-glibc2.12-x86_64.ta…...
AI 编程工具—Cursor进阶使用 阅读开源项目
AI 编程工具—Cursor进阶使用 阅读开源项目 首先我们打开一个最近很火的项目browser-use ,直接从github 上克隆即可 索引整个代码库 这里我们使用@Codebase 这个选项会索引这个代码库,然后我们再选上这个项目的README.md 文件开始提问 @Codebase @README.md 这个项目是用…...
掌握C语言内存布局:数据存储的智慧之旅
大家好,这里是小编的博客频道 小编的博客:就爱学编程 很高兴在CSDN这个大家庭与大家相识,希望能在这里与大家共同进步,共同收获更好的自己!!! 目录 引言正文一、数据类型介绍1.内置类型2.自定义…...
一键化配置java环境
一键化配置java环境 下载javaPathConfig 打开,将java的jdk路径写进去 例如我的路径就是 C:\Program Files\Java\jdk-1.8点击确认设置即可...
【I/O编程】UNIX文件基础
IO编程的本质是通过 API 操作 文件。 什么是 IO I - Input 输入O - Output 输出 这里的输入和输出都是站在应用(运行中的程序)的角度。外部特指文件。 这里的文件是泛指,并不是只表示存在存盘中的常规文件。还有设备、套接字、管道、链接…...
leetcode 面试经典 150 题:汇总区间
链接汇总区间题序号228题型数组解法一次遍历法难度简单熟练度✅✅✅ 题目 给定一个 无重复元素 的 有序 整数数组 nums 。 返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表 。也就是说,nums 的每个元素都恰好被某个区间范围所覆盖,并且不存在属…...
联想Android面试题及参考答案
请介绍一下 Android 的架构,并谈谈对 Linux 的了解。 Android 架构主要分为四层,从下往上依次是 Linux 内核层、系统运行库层、应用框架层和应用层。 Linux 内核层是 Android 系统的基础。它提供了底层的硬件驱动程序,包括显示驱动、摄像头驱动、音频驱动等多种硬件设备的驱…...
redux 结合 @reduxjs/toolkit 的使用
1,使用步骤 使用React Toolkit 创建 counterStore(store目录下) --> 为React注入store(src下面的index) --> React组件使用store中的数据(组件) 2,例如下面有一个简单加减的…...
【鱼皮大佬API开放平台项目】Spring Cloud Gateway HTTPS 配置问题解决方案总结
问题背景 项目架构为前后端分离的微服务架构: 前端部署在 8000 端口API 网关部署在 9000 端口后端服务包括: api-backend (9001端口)api-interface (9002端口) 初始状态: 前端已配置 HTTPS(端口 8000)后端服务未配…...
PHP反序列化
一、PHP面向对象的基础知识 基本概念 1、面向过程VS面向对象 以做饭为例,面向过程是自己从原材料到成品全部自己做,面向对象相当于去饭店,点菜,等待结果(上菜)。 2、类的定义 类是定义了一件事物的抽象…...
6、原来可以这样理解C语言_函数(7/8)嵌套调⽤和链式访问
目录 七、嵌套调⽤和链式访问 七、(1)、嵌套调⽤ 七、(2)、链式访问 七、嵌套调⽤和链式访问 七、(1)、嵌套调⽤ 嵌套调⽤就是函数之间的互相调⽤,每个函数就⾏⼀个乐⾼零件,正是因…...
安装 Jenkins 后无法访问用户名或密码且忘记这些凭证怎么办?
Jenkins 是一款功能强大的自动化服务器,在持续集成与交付(CI/CD)领域应用广泛。不过,用户在使用过程中,尤其是首次接触该系统或系统重启后,常常会遇到登录方面的问题。要是 Jenkins 突然要求输入用户名和密…...
VIVADO FIFO (同步和异步) IP 核详细使用配置步骤
VIVADO FIFO (同步和异步) IP 核详细使用配置步骤 目录 前言 一、同步FIFO的使用 1、配置 2、仿真 二、异步FIFO的使用 1、配置 2、仿真 前言 在系统设计中,利用FIFO(first in first out)进行数据处理是再普遍不过的应用了,…...
49_Lua调试
Lua提供了debug库用于创建自定义调试器,尽管Lua本身没有内置的调试器1。这个库允许开发者在程序运行时检查和控制执行流程,这对于开发过程中的错误查找和修复非常有用。 1.Debug库概述 debug库提供的函数可以分为两类:自省函数(introspection functions)和钩子函数(hoo…...
SR-BE 笔记和实验
一、笔记: SR不需要mpls,但要配置 mpls lsr-id 不需要MPLS LDP分标签,但仍然需要依赖IGP来分标签 fish—TE问题 SPF:Shortest Path First 最短路径算法 CSPF:Constrained SPF 受约束的SPF算法 BGP-LS: SR…...
实力认证 | 海云安入选《信创安全产品及服务购买决策参考》
近日,国内知名安全调研机构GoUpSec发布了2024年中国网络安全行业《信创安全产品及服务购买决策参考》,报告从产品特点、产品优势、成功案例、安全策略等维度对各厂商信创安全产品及服务进行调研了解。 海云安凭借AI大模型技术在信创安全领域中的创新应用…...
pytorch张量分块投影示例代码
张量的投影操作 背景 张量投影 是深度学习中常见的操作,将输入张量通过线性变换映射到另一个空间。例如: Y=W⋅X+b 其中: X: 输入张量(形状可能为 (B,M,K),即批量维度、序列维度、特征维度)。W: 权重矩阵((K,N),将 K 维投影到 N 维)。b: 偏置向量(可选,(N,))。Y:…...
Elasticsearch二次开发:实现实时定时同步同义词、近义词与停用词
Elasticsearch二次开发:实现实时定时同步同义词、近义词与停用词 引言 Elasticsearch(ES)作为开源搜索引擎的典范,以其强大的全文搜索、结构化搜索以及分析能力,在各个领域得到了广泛应用。在复杂的搜索场景中&#…...
Linux 常用文件查看命令
目录 cat 命令:连接与查看 more/less 命令:分页查看 tail 命令:实时追踪 cat 命令:连接与查看 基本功能:用于连接文件并打印到标准输出设备上,常用于查看文件内容。当有多个文件作为参数时,会…...
智能家居篇 一、Win10 VM虚拟机安装 Home Assistant 手把手教学
智能家居篇 一、Win10 VM虚拟机安装 Home Assistant 手把手教学 文章目录 [智能家居篇]( )一、Win10 VM虚拟机安装 Home Assistant 手把手教学 前言一.下载Vm版本的HomeAsistant安装包 二.打开Vmware选择新建虚拟机1.选择自定义高级2.选择16.x及以上3.选择稍后安装4.根据官网的…...
端口镜像和端口安全
✍作者:柒烨带你飞 💪格言:生活的情况越艰难,我越感到自己更坚强;我这个人走得很慢,但我从不后退。 📜系列专栏:网络安全从菜鸟到飞鸟的逆袭 目录 一,端口镜像二…...
打造更安全的Linux系统:玩转PAM配置文件
在Linux系统中,用户认证是确保系统安全的关键步骤。PAM(可插拔认证模块)为我们提供了一个非常灵活的框架,帮助我们管理各种服务的认证过程。其中,/etc/pam.d目录是PAM配置的核心部分,这里存放了每个服务所需…...
猫咪智商相当于人的几岁?
猫咪,这个神秘又高冷的物种,总能让我们又爱又恨。它们时而撒娇卖萌,时而独立自主,让人琢磨不透。那么,问题来了,猫咪的智商到底相当于人的几岁呢?今天,就来给大家好好揭秘一下喵星人…...