- 博客(52)
- 资源 (3)
- 问答 (2)
- 收藏
- 关注
原创 个人笔记:ORM数据库框架EFCore使用示例,运行通过,附源码
Entity Framework(EF)使用示例,附带源码,VS2022已运行
2024-12-20 19:02:18
774
2
原创 MahApps.Metro的MVVM模式解析(二) 主题功能
MahApps.Metro是一个开源的WPF框架,旨在为WPF应用程序提供现代和漂亮的用户界面。在MahApps.Metro中提供了切换主题的功能。经过多日的筛选和分析,在本文来理清它的脉络。
2024-05-27 11:46:28
792
原创 Visual Studio 中.net8.0(以前叫NET Core)框架和.net framewok 框架有什么区别?
.NET Core(.net8.0)框架和.net framewok框架的区别
2024-05-06 11:57:28
5128
1
原创 C# 高级特性(十一):多线程之async,await
之前使用Thread和Task启动多线程时都会遇到一个麻烦,就是如何反馈结果。在代码里就是如何设计回调函数。如果带界面还得考虑UI线程的问题。
2024-03-05 13:50:24
598
原创 物联网模块esp8266 的使用经验【flash_download_tools_v3.6.6、arduino】
在此记录和分享一下esp8266的使用流程。
2024-01-04 09:27:12
1711
原创 C语言:CRT detected that the application wrote to memory after end of heap buffer
数组越界访问问题
2023-04-18 14:49:08
828
原创 设计模式实践-中介模式
/* 20221225 中介模式对于多个已经封装好的对象,若需要他们彼此间直接通信。则可以使用一个中介对象,统一接收、发送消息。但缺点是中介对象会比较复杂 */
2022-12-25 10:00:12
97
原创 设计模式实践-建造者模式
建造者模式通过拆分一件复杂的工作 成一系列小步骤。从而在相似工作中,复用其中一部分小步骤。同时通过一个指挥者类,将小步骤包装成一件完整的工作。
2022-12-06 01:10:17
180
原创 设计模式实践-抽象工厂模式
* 抽象工厂,在简单工厂的基础上用反射替代switch语句 * 抽象工厂模式,遵守了 封闭原则。如果增加新的功能类,那么只需要继承原有工厂类,再添加新工厂方法。 * 这样完全不用修改原有工厂类
2022-12-06 01:09:07
221
原创 C# 特性:析构函数-是否调用测试
我在写日志模块时,采取一直打开文件的方式以便快速写入。也就希望软件关闭的时候,能自动关闭文件流。避免最后的一点日志不能保存到磁盘。于是研究了下C#的析构函数。结论是:某些情况下析构函数不会被执行。不建议使用析构函数
2022-04-12 13:13:30
1247
原创 C# 高级特性(十):多线程
用 Thread实现多线程: // 1 不带传入参数的 public void ThreadFun() { // 处理后台,例如等待网络响应或耗时长的计算任务 Console.WriteLine("Thrad:start do something"); Thread.Sleep(2000); Console.WriteLine("Thrad:end ");
2021-11-29 22:33:08
175
原创 C# 高级特性(九):不安全代码(unsafe)
当一个代码块使用 unsafe 修饰符标记时,C# 允许在函数中使用指针变量。不安全代码或非托管代码是指使用了指针变量的代码块。 // 作用域是一整个函数 public unsafe void Fun() { int* numPoint; int numA = 10; int numB = 20; numPoint = &numA; Con
2021-11-29 21:57:15
629
原创 C# 高级特性(八):匿名方法(Anonymous methods)
匿名方法(Anonymous methods) 提供了一种传递代码块作为委托参数的技术。匿名方法是没有名称只有主体的方法。在匿名方法中您不需要指定返回类型,它是从方法主体内的 return 语句推断的。 class AnonymousMethods { // 委托中使用匿名方法 delegate void HandleMessage_Delegate(string message); public void Fun() {
2021-11-29 21:46:44
491
原创 C# 高级特性(八):泛型(Generic)
泛型(Generic) 允许您延迟编写类或方法中的编程元素的数据类型的规范,直到实际在程序中使用它的时候。换句话说,泛型允许您编写一个可以与任何数据类型一起工作的类或方法。您可以通过数据类型的替代参数编写类或方法的规范。当编译器遇到类的构造函数或方法的函数调用时,它会生成代码来处理指定的数据类型。下面这个简单的实例将有助于您理解这个概念:...
2021-11-29 21:03:20
132
原创 C# 高级特性(七):集合(Collection)
/// <summary> /// 它代表了可被单独索引的对象的有序集合。 /// 它基本上可以替代一个数组。但是,与数组不同的是,您可以使用索引在指定的位置添加和移除项目, /// 动态数组会自动重新调整它的大小。它也允许在列表中进行动态内存分配、增加、搜索、排序各项。 /// </summary> public void ArrayList_Test() { ...
2021-11-29 16:26:48
425
原创 C# 高级特性(六):事件(Event)
事件(Event) 基本上说是一个用户操作,如按键、点击、鼠标移动等等,或者是一些提示信息,如系统生成的通知。应用程序需要在事件发生时响应事件。例如,中断。C# 中使用事件机制实现线程间的通信。定义的代码:class Event { // 定义一个委托,输入返回参数都可以自定义 public delegate void ShowMessage_Delegate(string message); public event ShowMessa
2021-11-29 15:31:25
877
原创 C# 高级特性(五):委托(Delegate)
C# 中的委托(Delegate)类似于 C 或 C++ 中函数的指针,但它多了类型检查。委托(Delegate) 是存有对某个方法的引用的一种引用类型变量。引用可在运行时被改变。委托(Delegate)特别用于实现事件和回调方法。所有的委托(Delegate)都派生自 System.Delegate 类。实例如下: class DelegateClass { // 定义一个委托,输入返回参数都可以自定义 public delegate void Show
2021-11-29 14:58:49
1805
原创 C# 高级特性(三):属性(Property)
属性(Property) 是类(class)、结构(structure)和接口(interface)的命名(named)成员。类或结构中的成员变量或方法称为 域(Field)。属性(Property)是域(Field)的扩展,且可使用相同的语法来访问。它们使用 访问器(accessors) 让私有域的值可被读写或操作。例如: class Property { private string name; public string FullName
2021-11-29 05:49:37
350
原创 C# 高级特性(二):反射(Reflection)
可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型。然后,可以调用类型的方法或访问其字段和属性。//反射(Reflection)有下列用途://1它允许在运行时查看特性(attribute)信息。 public static void ShowAttribute() { System.Reflection.MemberInfo info = typeof(Attribut...
2021-11-28 12:35:22
479
原创 C# 高级特性(一):特性
Net 框架提供了三种预定义特性:Conditional Obsolete AttributeUsage1 Conditional(条件编译特性 // 类似条件编译,但没有定义符号 时编译不会报错 [Conditional("DEBUG")] public static void Message(string msg) { Console.WriteLine(...
2021-11-28 01:44:49
253
原创 用元胞自动机实现 一维空间下热量扩散模拟
这个实例基于以下规则实现了 一维空间下的温度扩散的模拟:温度从高到低扩散,每一轮热量传递量为1;温度可扩散到周围8个元胞中;示例如下:刚开始如第一幅图,在中间位置有个高温点,然后热量不断向两端扩散。最后如第二张图所示,热量达到平衡。WPF的界面代码如下:<Window x:Class="CellularAutomata.WinTemperatureDiffusionSimulation" xmlns="http://schemas.micros
2021-06-28 02:20:08
373
原创 C#+WPF的 生命游戏机的实现
本文实现的元胞自动机有如下规则:在100x100的方格中,蓝色代表存活,白色代表死亡。当一个方格存活,周围有2个以上,
2021-06-20 13:07:19
371
TortoiseSVN_1.7.2.22327:xp专用
2016-07-21
WPF .Net FameWork4.6.1 DataGrid 数据要点击才显示
2019-03-19
C# 打包程序 找不到 已经在同一目录的库文件
2017-07-20
TA创建的收藏夹 TA关注的收藏夹
TA关注的人