自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

方亮的专栏

方亮的专栏

  • 博客(715)
  • 资源 (2)
  • 收藏
  • 关注

原创 谈代码注释

只要写代码,就会遇到代码注释的问题。在不同的公司,不同的项目组,不同的项目中,可能会有不同的注释标准。有些标准让我们感觉很受益,有些则让我们感觉很反感。而对于没有明确标准的项目,我们往往会遇到“百花齐放,百家争鸣”般的注释。我无法给出一个明确的标准,只是在此探讨下:什么样的注释不应该写,什么地方需要写注释。(转载请指明出于breaksoftware的csdn博客)“不”的原则...

2018-04-01 01:24:25 10623 9

原创 ASP.NET Core OData 实践——Lesson2增删改查Entity(C#)

OData中的Entity是数据模型的核心单元,代表可唯一标识的业务对象(如客户、订单)。它具有以下特点: 唯一标识性 - 每个实体都有主键 属性集合 - 包含描述业务特征的属性 类型继承 - 支持多态(如Circle继承Shape) 标准操作 - 支持CRUD操作(GET/PUT/PATCH/DDELETE) 灵活路由 - 支持基类/派生类的多种查询方式(/Shapes(1)或/Shapes(1)/Circle) 扩展性 - 通过继承适应不同业务需求 典型实现包含模型设计(如Shape基类与Circle/

2025-06-04 00:15:00 950

原创 ASP.NET Core OData 实践——Lesson2多态机制(C#)

例如,定义一个基类 Shape(包含 Id 和 Area 属性),其派生类 Circle(新增 Radius 属性)和 Rectangle(新增 Width、Height 属性),三者可共同存储在 Shapes 这个 EntitySet 中。

2025-06-03 00:30:00 883

原创 ASP.NET Core OData 实践——Lesson10基本概念和动态构建(C#)

Model Meta中的表现</Model Meta中的表现</Model Meta中的表现</Model Meta中的表现</Model Meta中的表现</Model Meta中的表现</Model Meta中的表现</Model Meta中的表现</

2025-06-03 00:15:00 1708

原创 ASP.NET Core OData 实践——Lesson9绑定和未绑定的Function和Action(C#)

本文基于ASP.NET Core OData v8.x,详解OData服务中Actions与Functions的差异及实现。Functions是幂等的查询操作,用于数据计算(如统计销售额),支持GET请求;Actions是非幂等的命令操作(如订单提交),通过POST修改状态。文章通过Book模型示例,演示了绑定/非绑定Function的实现(如MostRecent()和ReturnAllForKidsBooks()),以及Action的定义规则。关键区别在于:Functions是"只读计算器&qu

2025-06-02 00:30:00 1909

原创 ASP.NET Core OData 实践——Lesson8增删改查单值类型Property(C#)

单值属性(Single-Valued Property)指的是实体中类型为复杂对象但非集合的属性,比如客户的账单地址(BillingAddress)、企业客户的注册地址等。单值属性的操作涵盖了查询、替换、部分更新等多种场景。本文将结合代码示例,讲解如何在 OData 控制器中优雅地处理单值属性,并分析其在数据建模和接口设计中的重要性。

2025-06-02 00:15:00 734

原创 ASP.NET Core OData 实践——Lesson8增删改查原始类型Property(C#)

本文介绍了OData API中原始属性的操作方法。原始属性是OData实体中最基础的数据类型,包含字符串、数字、布尔值等。文章详细列举了支持GET、PUT、DELETE等操作的接口路由模板,包括对基类/派生类实体和单例属性的查询与更新。通过C#代码示例展示了主要模型设计(Address、Customer等类)和控制器实现,其中控制器继承ODataController以获得标准路由、查询参数支持等特性。最后提供了一个包含4个客户实例的数据源示例,演示了原始属性在实际业务中的典型应用场景。

2025-05-31 00:30:00 952

原创 ASP.NET Core OData 实践——Lesson8增删改查集合Property(C#)

本文介绍了OData API设计中集合属性的实现方法。主要内容包括:1) 支持GET、POST、PUT、DELETE等方法的接口路由模板设计;2) 模型设计示例,展示了基类与派生类(Customer/EnterpriseCustomer)的结构;3) 控制器设计要点,通过继承ODataController获得路由、查询参数等支持;4) 提供了数据源示例代码,包含4个客户实例(2个普通客户和2个企业客户)。文章重点说明了如何通过OData规范处理集合类型属性(如ContactPhones列表)和复杂类型属性(

2025-05-31 00:15:00 847

原创 ASP.NET Core OData 实践——Lesson7通过Payload修改Reference(C#)

本文介绍了在ASP.NET Core OData中通过Payload修改Reference的方法。文章对比了两种修改方式:URI中指定Key的方式和Payload传递的方式,并提供了对应的路由模板。主要内容包括模型设计示例(Customer、Employee、Order等实体类)和控制器的关键实现方法TryParseRelatedKey,该方法用于解析Payload中的资源标识符。重点演示了如何通过POST/PUT请求和JSON Payload(包含"@odata.id")来设置导航属性

2025-05-30 00:30:00 796

原创 ASP.NET Core OData 实践——Lesson7使用Reference增删改查一对多Navigation Property(C#)

本文介绍了 OData 协议中的 Reference 机制,该机制专门用于管理实体间的一对一或一对多关系(如员工-企业)。通过标准的 RESTful 操作(GET/POST/PUT/DELETE),客户端可直接操作导航属性而无需修改整个实体。文章以“员工-企业”一对多关系为例,展示了模型设计(包含 Customer、Employee 等类)和 OData 控制器实现,重点说明了 Reference 支持的接口类型(如查询、添加、删除引用),并指出其不支持 PATCH 请求,仅用于管理关系而非属性更新。通过继

2025-05-30 00:15:00 1275

原创 ASP.NET Core OData 实践——Lesson7使用Reference增删改查一对一Navigation Property(C#)

本文介绍了OData协议中的Reference机制,这是一种专门用于管理实体间关系的标准接口。文章以"订单-客户"的一对一关系为例,详细讲解了Reference与普通导航属性的区别:Reference仅操作关系本身(如设置/取消关联),不修改被引用对象的属性。内容涵盖了支持的标准接口(GET/POST/PUT/DELETE)、模型设计(包含派生类ThirdpartyPaymentOrder)以及控制器实现方法,并强调Reference不支持PATCH操作。该机制通过专用路由和元数据支持,

2025-05-29 03:15:00 951

原创 ASP.NET Core OData 实践——Lesson6使用Action(C#)

本文介绍了一个基于ASP.NET Core OData的Web API示例,重点演示了如何通过OData Action实现批量或单个对象的业务操作(如发放礼品、奖金等)。文章首先概述了OData Action的特点及其支持的6种接口调用方式(包括绑定/非绑定操作)。随后详细说明了模型设计(Employee和Manager类)以及控制器的实现,展示了如何继承ODataController来获得OData标准支持。核心部分通过具体代码示例演示了绑定到实体集的Action实现(批量发放礼品),并提供了对应的cUR

2025-05-29 00:15:00 841

原创 ASP.NET Core OData 实践——Lesson5使用Function(C#)

本文介绍了基于ASP.NET Core OData的Web API示例,演示如何使用Function机制对员工和经理进行业务计算。Function封装了服务端复杂的业务逻辑,支持幂等操作,通过URL传递参数和返回结果。文章详细说明了Function的核心概念、特点、支持的接口类型,并展示了模型设计(Employee和Manager类)及控制器实现。重点讲解了绑定函数的调用方式,包括获取最高绩效评分的具体代码示例,体现了OData在封装业务逻辑、提升API表达力方面的优势。

2025-05-28 00:30:00 787

原创 ASP.NET Core OData 实践——Lesson4增删改查Navigation Property(C#)

本文介绍了一个基于ASP.NET Core OData的Web API示例,演示了对员工(Employee)和经理(Manager)实体进行CRUD操作。系统支持多态性、导航属性和批量操作。文章详细阐述了导航属性的概念(单值和集合导航属性),并提供了完整的API接口说明。模型设计部分包含Employee基类(含Id、Name、Supervisor和Peers属性)和Manager子类(增加PersonalAssistant和DirectReports属性)。控制器继承ODataController实现ODa

2025-05-28 00:15:00 795

原创 ASP.NET Core OData 实践——Lesson3修改和查询Singleton(C#)

本文介绍了基于ASP.NET Core OData的单例模式Web API实现,主要演示了如何管理全局唯一的公司资源。OData单例代表系统中唯一存在的对象(如公司配置),不支持新增和删除操作。文章详细说明了支持的接口类型(GET/PUT/PATCH),包括基类和派生类的查询与更新方式。通过Company和HoldingCompany的继承模型设计,展示了多态处理能力。控制器继承ODataController获得标准OData功能,使用静态字段保证单例唯一性。文中提供了完整的请求响应示例,包括通过curl测

2025-05-27 00:30:00 687

原创 ASP.NET Core OData 实践——Lesson2查询和局部更新EntitySet(C#)

本文介绍了一个基于 ASP.NET Core OData 的 Web API 示例,演示了如何通过 OData 协议对多态形状(Shape 基类及 Circle、Rectangle 派生类)实现完整的 CRUD 操作。项目采用内存集合存储数据,详细展示了 OData 控制器的设计模式,包括支持基类和派生类实体的增删改查接口规范。摘要还列出了核心路由模板和请求方法,如 GET/POST/PUT/PATCH/DELETE 等标准操作,并说明了多态查询的特殊路径格式。通过 Shape 模型继承体系,体现了 ODa

2025-05-27 00:15:00 865

原创 ASP.NET Core OData 实践——Lesson1-2查询服务文档、模型Meta和Entity数据(C#)

本文介绍了如何使用Postman查询OData服务中的数据。首先说明OData服务会公开服务文档和元数据文档两个资源:服务文档(GET /odata/)列出可用资源及其路径,元数据文档(GET /odata/$metadata)以XML格式详细描述数据结构。接着演示了如何查询Customers实体集数据,包括基本查询、排序($orderby)和筛选($filter)操作。文章还解释了EntityContainer的概念及其在OData服务中的核心作用,帮助理解服务的数据模型组织方式。

2025-05-26 03:45:00 733

原创 ASP.NET Core OData 实践——Lesson1-1搭建服务(C#)

本文介绍了使用Visual Studio 2022创建ASP.NET Core空项目并集成OData服务的过程。主要内容包括:1) 创建Lesson1项目并取消HTTPS配置;2) 安装Microsoft.AspNetCore.OData包;3) 创建Customer和Order模型类,定义数据结构和导航属性;4) 编写支持OData查询的CustomersController控制器;5) 配置Program.cs文件,通过ODataConventionModelBuilder注册EntityType和En

2025-05-26 03:30:00 1000

原创 51单片机编程学习笔记——无源蜂鸣器演奏《祝你生日快乐》

蜂鸣器分为有源和无源两种,有源蜂鸣器自带振荡电路,只需接入直流电源即可发声,声音单一且稳定,常用于设备状态提示。无源蜂鸣器需外部提供脉冲信号,通过改变信号频率可发出不同音调,适用于需要多样化声音的场景。无源蜂鸣器通过达林顿阵列驱动,输出方波信号使其发声。通过编程控制方波频率和时长,无源蜂鸣器可以模拟钢琴演奏,如《祝你生日快乐》。计算音符频率和时值后,通过循环输出相应频率的方波,实现音符的持续发声。

2025-05-20 22:56:55 896

原创 51单片机编程学习笔记——动态数码管显示多个数字

在一文中,我们看到如何使用动态数码管显示数字。但是基于动态数码管设计的特点,每次只能显示1个数字。这就不能让我们一次性显示多个数字,比如666就无法显示。如果我们要让动态数码管“显示”多个数,就要结合我们人眼的视觉残留。人眼的视觉残留又称视觉暂留,是指物体在快速运动时,当人眼所看到的影像消失后,人眼仍能继续保留其影像 0.1 - 0.4 秒左右的图像。

2025-03-04 23:58:27 1224 3

原创 51单片机编程学习笔记——动态数码管

有了和的基础,我们就可以开始学习动态数码管的编程方法。我们首先要看下动态数码管的电路图。

2025-03-04 01:02:37 898

原创 51单片机编程学习笔记——74HC245八路三态输出双向收发器

在单片机系统里,单片机的 I/O 口驱动能力往往有限。当需要连接较多外部设备或者负载较大时,就可能出现信号传输不稳定的问题。74HC245 收发器则能够很好地解决这一难题。通过将单片机的 I/O 口与 74HC245 的 A 端口相连,外部设备连接到 B 端口,利用 74HC245 的驱动能力。比如在一个智能环境监测系统中,单片机需要与多个传感器和显示设备进行通信。传感器采集到的环境数据(如温度、湿度等)需要准确无误地传输到单片机进行处理,而单片机处理后的结果又要传送到显示设备上显示。

2025-03-03 22:23:19 1954

原创 51单片机编程学习笔记——74HC138译码器

74HC138 是一款高速 CMOS 器件,属于二进制译码器,可将3位二进制输入代码转换为 8 个互斥的输出信号(2等于 8)。它的工作电压范围一般为 2.0V 至 6.0V,具有较宽的电压适应范围,能够满足多种不同电源电压的应用场景。它的原理图如下:下面我们会分开讲解各个模块。

2025-03-03 03:00:00 3000

原创 51单片机编程学习笔记——管脚输入

一文中,我们了解了管脚和寄存器之间的关系。我们可以给寄存器的一些位设置值,然后控制管脚的电平,以达到给器件传输信号的目的。即我们可以通过器件影响寄存器的值,从而给单片机获取输入信息的机会。需要说明的是,电路图中给的K1和K2对应的管脚是错的。实际上,我购买的开发板上,K1对应P30,K2对应P31。在学习之前,我们需要知道P0~P3管脚在复位情况下的电平状态。基于这样的认知,我们可以通过判断P30~P31的位变量值是否为0,来得知对应按键是否被按下。图中4个按键的电路连接的都是P3系列的管脚。

2025-02-28 05:00:00 793

原创 51单片机编程学习笔记——管脚输出

是用于定义可位寻址对象的关键字,主要用于访问可位寻址的特殊功能寄存器中的某位或可位寻址的内部 RAM 单元,方便对这些特定位进行单独操作。这就意味着给它赋值(不是定义),实际修改的是该位空间中的值,而不是该位的地址。使用 sfr 关键字后,紧跟着是要定义的特殊功能寄存器的名称,然后是等号和该寄存器的地址值。这就意味着代码中P2表示的特殊功能寄存器,它的地址是0xA0。VCC作为正极在LED的P端,N端则连着单片机的P20管脚。我们再在原理图中查看单片机核心的原理图,可以找到P20管脚。

2025-02-28 02:45:00 984

原创 51单片机编程学习笔记——VSCode上开发代码

之前我们的例子都是在Keil中编写51单片机的代码。但是Keil的编辑界面非常不友好,而且没有AI加持,已经不能适应现代化的开发了。我们可以使用VSCode作为编码工具。它不仅可以提供AI功能,还能做代码补齐以及集成其他扩展。需要说明的是,VSCode只能作为编码工具,而不能作为编译工具。这就意味着我们还是需要安装Keil。

2025-02-27 01:35:30 377

原创 51单片机编程学习笔记——Delay效果的实现

有毫秒和微秒两个单位。我们选择生成延时1毫秒。这样我们就会得到代码。_nop_();i = 2;j = 199;do。

2025-02-27 00:48:25 967

原创 51单片机编程学习笔记——从0到1创建Keil工程

在熟悉了一文后,我们可以根据学到的知识编写一段程序,让LED每隔一段时间闪烁一次。不同于中直接借用了教程中的工程项目,本例我们将创建一个全新的工程来完成需求。

2025-02-26 22:19:01 440

原创 51单片机编程学习笔记——LED原理图

在一文中,我们通过下面这段代码点亮了D1和D2两个LED灯。那么我们是怎么知道P0^2对应第一个LED的呢?这就需要我们能看懂LED电路原理图。在学习 51 单片机的过程中,能看懂电路原理图具有举足轻重的意义。51 单片机作为一款经典的微控制器,广泛应用于各类电子设备开发。而。首先,看懂电路原理图是进行硬件设计的基础。当着手设计基于 51 单片机的系统时,只有清晰了解各个元器件在电路中的位置、连接方式以及它们与单片机的接口关系,才能合理地选择和布局元器件,搭建出稳定可靠的硬件平台。

2025-02-26 00:23:48 1071

原创 51单片机编程学习笔记——点亮LED

因为开发板已经帮我们把很多元器件和引脚连接好了,而我们当前关注的重点不是接引脚,而是编程,所以我们选择购买开发板。下面是我购买板子的商家提供的地址:pwd=1234 提取码:1234。

2025-02-24 23:18:20 935

原创 51单片机编程学习笔记——编译代码点亮LED

一般情况下,开发板商家会提供开发相关的套件和资料。我们只要在这个资料中找到编译器和破解程序(在目录下:5–开发工具\1-KEILC51软件),按照步骤执行即可。非破解版可以编译代码量小于2K的工程,而对超过2K的代码则会报错。为了避免以后的麻烦,我们可以购买正版或者破解它。破解过程不表,可以在网上找到资料。需要注意的是,启动Keil时需要使用“管理员”权限。

2025-02-24 23:16:19 249

原创 闯关leetcode——3127. Make a Square with the Same Color

我们只要检测一个格子周边是否存在2个同色格子即可判断“否”的场景,其他都是“是”的场景。3的矩阵中,检测是否存在最多只用改变一次颜色,就可以形成一个2。

2024-12-31 15:39:50 1351

原创 闯关leetcode——3110. Score of a String

这题就是要统计相邻两个字符之差的绝对值之和。

2024-12-31 15:39:33 455

原创 闯关leetcode——3131. Find the Integer Added to Array I

这题是说一个数组中的元素是由另外一个数组中的元素加上(减去)某个数之后得到的,但是数组中元素顺序是乱的。

2024-12-31 15:39:22 927

原创 闯关leetcode——3136. Valid Word

解法也很简单,按这些条件把规则写好即可。

2024-12-31 15:39:01 1228

原创 Robot Operating System——位置和速度信息

nav_msgs::msg::Odometry 是 ROS 2 中的一个消息类型,用于表示机器人在环境中的位置和速度信息。里程计(Odometry)数据通常由轮式编码器、惯性测量单元(IMU)等传感器提供,用于跟踪机器人的运动状态。

2024-12-31 15:38:45 1101

原创 闯关leetcode——3146. Permutation Difference between Two Strings

我们借助一个vector将第一个字符串中字符下标进行保存,然后再计算它们和第二个字符串中相同字符的下标差值。这题就是要求出两个相同字符组合、不同顺序的字符串中,相同字符下标差的绝对值之和。

2024-12-31 15:38:00 1074

原创 闯关leetcode——3120. Count the Number of Special Characters I

我们的解题思路就是把大小写字符都归到各自的bitset结构中。然后两个bitset取与操作,最后看看有多少位是1.这题就是要在一个字符串中找出,同时出现了大小写字符的个数。

2024-12-31 15:37:47 447

原创 闯关leetcode——3142. Check if Grid Satisfies Conditions

这题就是要检测一个二维数组是否符合以下特征:在行上相邻两数字不相等,列上数字相等。我们的方法就是先检测第一列相邻的两个数字是否不等;然后再检测列上的数字相同。

2024-12-28 00:30:00 687

原创 Joget研究——Joget8商业版部署

在MySQL命令行中,执行以下命令来设置root用户的密码。由于我们配置正确的数据库连接信息,所以需要通过打开。这样我们就可以使用admin账户在下面页面中登录。仍然以root用户登录Mysql。配置正确后,可以看到如下的提示。在上述文件中,新增如下内容。重新加载环境,并检验环境。设置正确的端口和密码。

2024-12-28 00:15:00 1132

同步双工管道

http://blog.csdn.net/breaksoftware/article/details/7001672文中的工程

2011-11-24

LuaCmdTest

我用于测试的一个lua脚本,没啥用,不用下载。

2012-11-27

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除