- 博客(45)
- 资源 (3)
- 收藏
- 关注
原创 C#知识笔记
这些访问修饰符可用于类的定义和成员的定义,以控制类和成员的访问级别,从而实现封装和信息隐藏的概念。注意,在默认情况下,类成员的访问修饰符是private。另外,如果成员属于同一个程序集的其他类,则也可以访问。protected internal:表示成员既能被同一个类或其派生类访问,也可以被同一个程序集中的其他类访问。对于其他程序集的类来说,internal成员是不可见的。private:最低级别的访问修饰符,表示只能在同一个类中访问。public:最高级别的访问修饰符,表示可以从任何地方访问。
2023-12-24 23:51:43 110
原创 WCF服务总结
WCF,全称为Windows Communication Foundation,是一种用于构建分布式应用程序的微软框架。它提供了一种统一的编程模型,用于构建服务导向的应用程序,这些应用程序可以在本地或远程计算机上运行。WCF 支持多种传输协议和编码格式,并提供了高级安全性、可靠性和事务处理。通过 WCF,开发人员可以轻松地创建基于服务的体系结构,以实现不同平台和技术之间的互操作性。
2023-12-21 17:39:42 575
原创 24---WPF缓存
1.缓存指的是将需要频繁访问的网络内容存放在离用户较近、访问速度更快的系统中,以提高内容访问速度的一种技术。二、作用--意义---如果系统出现故障---立竿见影的技术手段---就是使用缓存~~原则--查询多,增删改少-----数据查询频率高且数据相对稳定;3.缓存字典数据---省市区---数据查询频率高且数据相对稳定;Nuget引入:System.Runtime.Caching。2.缓存就是一个临时存放区域--离用户比较近。4.程序包下载---文件下载。1.提高性能---响应快。1.读取配置文件--
2023-10-19 16:04:56 1257
原创 C#之性能优化
①避免循环创建对象如果对象并不会随每次循环而改变状态,那么在循环中反复创建对象将带来性能损耗。高效的做法是将对象提到循环外面创建。②在需要逻辑分支中创建对象如果对象只在某些逻辑分支中才被用到,那么应只在该逻辑分支中创建对象。③使用常量避免创建对象程序中不应出现如 new Decimal(0) 之类的代码,这会导致小对象频繁创建及回收,正确的做法是使用Decimal.Zero常量。我们有设计自己的类时,也可以学习这个设计手法,应用到类似的场景中。④使用StringBuilder做字符串连接。
2023-09-26 14:32:03 731
原创 Advanced Installer使用(亲测可用)
这里已经安装完成,所以再次点击是修改、修复、删除的界面。特别说明:本教程使用Advanced installer 21.0.1汉化版本,所打包的程序为C#程序,有需要Advanced Installer安装包的私~
2023-09-22 17:03:05 4615 10
原创 23---WPF数据库ORM框架
4.底层当然还是Sql语句---中间必然有一个实体对象到Sql语句的生成过程--通用的,通过程序来生成SQL语句---Sql语句不是那么简洁--Sql语句相对比较僵化---读取类中的元素,生成Sql语句---必然会大量的反射---反射损耗性能。2.ORM: object-relational-mapping对象关系映射--对象--类--可以通过对类的操作完成对于数据库的操作---对类的操作---面向对象的编程思想;一、仓库--存放货物---数据库--存放数据--关系型数据/非关系型数据库。
2023-06-21 15:39:19 2094
原创 使用Scaffold-DbContext报错解决
Trusted_Connection---使用Trusted_Connection选项只能用于连接到SQL Server的Windows身份验证。如果要使用用户名和密码进行身份验证,则不能使用Trusted_Connection选项。在这种情况下,应该使用User ID和Password选项来指定登录信息。
2023-06-20 09:15:58 438
原创 22WPF----Prism框架
文档可以参考源码地址:版本8.1Prism框架10+历史、微软,最新版本使用2、功能说明Prism提供了一组设计模式的实现,有助于编写结构良好的且可维护的XAML应用程序,包括MVVM、依赖注入、命令、事件聚合器3Prism框架关键程序Prism.Core:实现MVVM的核心功能,属于一个与平台无关的项目Prism.Wpf:包含了RegionModuleNavigation,其他的一些WPF的功能4、获取Prism框架。
2023-05-24 16:20:46 4391
原创 21WPF---MVVMToolkit框架
使用IRecipient接收消息,好处不需要注册。注册和发送时都带Token,指定发送和接收。4.MVVMToolKit消息处理机制。使用异步命令,监控执行状态。
2023-04-11 15:18:06 406
原创 Gitea私有服务器搭建
Gitea 是一个开源社区驱动的轻量级代码托管解决方案,后端采用 Go 编写,采用 MIT 许可证.官网:https://gitea.io/zh-cn/
2023-03-08 20:23:20 496
原创 20WPF---MVVMLight框架
轻量(相对于Prism),专注(仅负责MVVM架构模式的实现,没有其他多余的组件),高效(使用简易,省时省力).MainWindow中弹出子窗体,但在子窗体绑定的数据模型中开启一个线程,该线程不会随着子窗体的关闭而关闭。在ViewModelLocator类中做统一的对象释放。4.MVVMLight框架常用对象。5.8如何拿到子窗体的打开关闭状态。5.7Messenger全局消息。5.2 ICleanup清除内存。若传递EventArgs参数。5.6 ICommand命令。在子窗体关闭事件中调用。
2023-03-02 15:21:09 2585
原创 16WPF---用户控件
assembly=PresentationFramework.Aero2">在Win7下不可用。用户控件UserControl标签可以被包含,而Window只能是顶级控件,不能被包含。
2022-12-19 21:47:42 784
原创 15WPF---动画控制与事件
若不进行缓存,Border移动到线条密集的地方会出现卡顿,其原因是移动过程中会重新渲染Border覆盖的地方,缓存的目的是保存背景不变。DesiredFrameRate越大界面变化连续、CPU的占用率高,反之变化有弹跳现象,CPU占用低。CurrentGlobalSpeedInvalidated:速度变化。CurrentTimeInValidated:时间线变化,60帧。CurrentStateInValidated:状态变化。RemoveRequested:动画正在被移除的时候触发。
2022-12-13 15:39:39 629
原创 14WPF---关键帧动画
Linear+类型 +KeyGrame:线性变化关键帧,简单线性动画的处理基本一样。KeySpline="0.1,0.6,0.9,0.4"说明:动画的变换速度曲线。FillBehavior:动画结束HoldEnd(保持最后的结果)/Stop。RepeatBehavior:动画重复方式,次数/时间/Forever。IsAddtive:将目标属性的当前值添加到动画的起始值。IsCumulative:如果动画不断重复,就积累动画值。AutoReverse:是否执行相反的动画。只能在Animation中。
2022-12-13 14:53:10 807
原创 12WPF---简单线性动画
1.动画本质是在一个时间段内对象尺寸、位移、旋转、缩放、颜色、透明度等属性值的连续变化,也包括图形变形的属性。动画重复:RepeatBehavior(次数3x、时间0:0:3、永远Forever)动画与对象的桥梁:DoubleAnimation定义动画实例,执行在哪个对象。关键帧动画:22个类型名+AnimationUsingKeyFrames。From不写的话,动画会从当前最新的值开始变化。简单线性动画:17个类型名+Animation。控制动画的运行、开始、停止、恢复。值变化:From、To、By。
2022-12-12 16:06:31 621
原创 11WPF---事件
注意:在Button中Click事件比MouseLeftButtonDown事件的优先级高,响应Click事件后并不会触发MouseLeftButtonDown事件IsDefault="True":回车默认进入Click事件路由事件:是一种可以针对元素树中的多个侦听器(不仅是引发该事件的对象)调用处理程序的事件。WPF基础04之冒泡事件和隧道事件_苏克贝塔的博客-CSDN博客_wpf冒泡事件和隧道事件冒泡事件:是WPF路由事件中最为常见,它表示事件从源元素扩散(传播)到可视树,直到它被处理或到达根元素。这样
2022-12-04 22:19:03 1322 1
原创 10WPF---3D图形
NavigationStopped:在调用应用程序中的导航器的 StopLoading 方法时发生,或者当导航器在当前导航正在进行期间请求了一个新导航时发生。正交相机:在这种投影模式下,无论物体距离相机距离远或者近,在最终渲染的图片中物体的大小都保持不变,这对于渲染2D场景或者UI元素是非常有用的。Navigated:在已经找到应用程序中的导航器要导航到的内容时发生,尽管此时该内容可能尚未完成加载。NavigationFailed:在应用程序中的导航器在导航到所请求内容时出现错误的情况下发生。
2022-12-01 17:53:49 1797
原创 9WPF---图形变换与渲染
RotateTransform Angle="45" CenterX="50" CenterY="50"/>以中心点进行旋转。5.MatrixTransform:使用提供的矩阵的乘积修改坐标系统。2.TranslateTransform:将坐标系统移动一定的距离。4.SkewTransform:通过倾斜一定的角度扭曲坐标系统。3.ScaleTransform:放大或最小坐标系统。1.RolateTransform:旋转坐标系统。10.DrawingBrush:笔刷。相对容器,网格会随盒子大小缩放。
2022-11-29 23:32:59 411
原创 6WPF---数据绑定属性与验证
作用:将页面对象的某个属性与数据源建立联系,通过绑定可以将界面与数据逻辑进行隔离。绑定:描述一种关系,通过某种关系将多个事物联系在一起。3)ValidationRule异常捕获,自定义异常。目标Targer:界面对象属性(必须是依赖属性)源Source:需要在界面上做交互关联的数据对象。2.绑定表达式的辅助属性。1)依赖属性异常捕获。
2022-11-21 20:22:39 1004
原创 5WPF---数据绑定
TemplatedParent = 1,//相当于Binding Value,RelativeSource={RelativeSource XXX}PreviousData = 0,//前一个值。FindAncestor = 3//查找祖先类。Self = 2,//自身的属性。1.静态资源绑定Element/Source。4.依赖附加属性进行子项数据集合绑定。2.DataContext数据绑定。
2022-11-15 18:48:53 748
原创 VUE+WebAPI+Swagger实现购物车
8.添加跨域请求的NuGet包。9. 使用Swagger。6.添加NuGet引用。4.添加控制器API。
2022-09-05 22:44:44 386
原创 EntityFramework Core迁移数据库
1.创建.NET Core控制台2.添加NuGet包3.创建实体类4.添加数据库上下文类5.迁移
2022-05-28 09:32:24 163
原创 TCP的三次握手和四次挥手
TCP三次握手就好比两个人在街上隔着50米看见对方,但是因为雾霾等原因不能100%确认,所以要通过招手的方式相互确定对方是否认识自己.第一次:张三首先向李四招手(syn)第二次:李四看到张三向自己招手后,李四微笑并招手(ack+syn),中间是两个动作的合并第三次:张三点头(ack)synsent是主动打开方的”半打开”状态,synrcvd是被动打开方的”半打开”状态.TCP数据传输就是两个人隔空对话,差一点距离,所以需要对方反复确认听见了自己的话张三喊了一句话(data
2022-05-26 14:45:58 139
原创 SQLite加密程序
1.前言最近做一个项目使用到SQLite数据库,但免费版的没有加密功能,手写一个加密程序,解密将新密码设置为空即可2.效果3.相关代码using System;using System.Collections.Generic;//using System.Linq;using System.Text;//using System.Configuration;using System.Data;using System.IO;using System.Data.S.
2022-05-07 11:09:48 923 4
原创 DataGridViewComboBoxColumn下拉体验改善
1.前言使用该功能时,发现点击下拉选项需要三次,而且选择完,还要点击其他单元格才能提交,可以说用户体验性极差.本人经过摸索,改善了以上体验.2.效果点击一次立马弹出下拉框,且提交后立马结束编辑状态.3.实现代码 private void dgv_table_CellClick(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex >= 0 &&
2022-05-07 09:30:59 1293 2
原创 DevExpress安装---测试可用
一.安装DEV安装包参考:DevExpress安装教程及问题解决_凉丶城的博客-CSDN博客_devexpress安装二.破解点击Patch 选择VS版本--->VS安装路径三.汉化 汉化包文件夹重命名zh-CN 统一汉化:把汉化包放到C:\Program Files (x86)\DevExpress 20.1\Components\Bin\Framework ----->看具体装在哪个盘 执行命令:以管理员的方式运行Deve...
2022-05-03 15:17:25 3962
原创 C#---AOP面向切面编程应用
1.基本概念AOP(Aspect Oriented Programming)是一种能够在现有面向对象封装的基础上,为了满足软件业务扩展的需求,实现程序动态扩展的一种方式。场景:适合软件的二次开发应用,动态扩展某些业务,但是尽量的让这些改动最小。个人理解:给现有业务方法拓展功能,而对原来封装没有破坏.2二.AOP的实现方式2.1 基于Attribute特性给实体类的属性验证这一步就是获取注入的特性,并调用特性中的验证方法,对属性值进行验证.2.2基于装饰器设...
2022-04-10 14:26:00 6110
原创 使用VS2019给项目打包
1.添加项目Setup Project没有可在NuGet上搜索,下载安装2.创建项目输出选择输出的项目,点击主输出 3.拷贝相关资源例如:图片资源、配置文件4.给主输出创建快捷方式,并重命名5.给快捷方式添加图标6.将快捷方式放到桌面文件夹中,放到开始菜单里同理7.更改默认安装目录8.更改作者信息Setup项目属性9.重新生成Debug目录下2个安装包...
2022-04-07 16:43:25 1402
C#开发的WinForm---SQLite加密程序
2022-05-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人