.NET中有多少种定时器一文介绍过.NET中至少有6种定时器,但精度都不是特别高,一般在15ms~55ms之间。在一些特殊场景,可能需要高精度的定时器,这就需要我们自己实现了。本文将讨论高精度定时器实现的思路。高精度定时器一个定时器至少需要考虑三部分功能:计时、等待、触发模式。计时是进行时间检查,调整等待的时间;等待则是用来跳过指定的时间间隔。触发模式是指定 ......
14
0
0
2024-02-19
前言我们上一篇讲了一下枚举类型的优化,本篇来看下DateTime也就是时间格式的优化。概述DateTime 和 DateTimeOffset 为例。dotnet/runtime#84963 改进了 DateTime{Offset} 格式化的各种方面:格式化逻辑具有用作回退的一般支持,并支持任何自定义格式,但也有用于最流行格式的专用例程,允许对其进行优化和调整 ......
28
0
0
2024-02-17
前言在Web应用开发中,经常需要实现PDF文件的加载和显示功能。本文小编将为您介绍如何在ASP.NET Core中实现这一功能,以便用户可以在Web应用中查看和浏览PDF文件。实现步骤1)在服务器端创建PDF打开 Visual Studio 并创建新的 ASP. NET Core Web 应用程序,小编这里项目名称为CreatePDF。选择 .NET Cor ......
15
0
0
2024-02-16
今天给大家推荐一个.NET开发的,可以将winform应用的崩溃报告发送到指定邮箱的库CrashReporter.NET,其中包含完整的异常报告(如堆栈跟踪、异常类型、消息、源、.NET CLR 版本、OS 版本和应用程序版本)、堆栈跟踪和屏幕截图。1使用代码先安装nuget包:PM> Install-Package CrashReporter.NET ......
18
0
0
2024-02-15
要运行本文中的示例,请先安装Vistual Studio 2022,社区版就可以了。1 创建项目选择创建WPF应用给程序起一个酷酷的名字,选一个酷酷的位置:选一下.NET62 配置项目从nuget.org上安装AnyCAD Rapid SDK 2022。3 设计界面首先引入程序集: xmlns:anycad="clr-namespace:AnyCAD.WP ......
19
0
0
2024-02-15
1.前言 Ref这个关键字其实就是非托管里面的指针。它可能是一级指针也可能是二级指针。它可以直接通过托管操控内存。本篇来看下。2.概述 一:例子 先上简单例子代码:static string ABC(string str) { return str; } static string DEF(ref string str) { ret ......
28
0
0
2024-02-05
英文:devblogs.microsoft.com 译文:cnblogs.com/xiaoxiaotank/p/13206569.html 译者:xiaoxiaotank前言Task类是在.NET Framework 4引入的,位于System.Threading.Tasks命名空间下,它与派生的泛型类Task<TResult>已然成为.NET编 ......
32
0
0
2024-02-03
本文中将会对就重要的特性进行介绍,并用代码示例展示这些特性。有些特征已经发布!RecordsRecords 是一种全新的简化的 C# class 和 struct 的形式。现在当我们需要声明一个类型用来保存数据,并且支持数据的解构的话,需要像如下一样写出大量的样板代码:class Point : IEquatable<Point> { ......
42
0
0
2024-01-27
前言中台admin是前后端分离权限管理系统,Admin.Core为后端项目,基于.NET 7.0开发。支持多租户、数据权限、动态 Api、任务调度、OSS 文件上传、滑块拼图验证、多数据库,分布式缓存、分布式事务等接口文档一览项目地址Github https://github.com/zhontai/Admin.Core技术栈dotnet7FreeSqlAu ......
42
0
0
2024-01-27
何为反射? 首先我们通过两个实例来说明反射的大体概念。 B超:大家体检的时候大概都做过B超,B超可以透过肚皮探测到你内脏的生理情况。这是如何做到的呢?B超是B型超声波,它可以透过肚皮通过向你体内发射B型超声波,当超声波遇到内脏壁的时候就会产生一定的“回音”反射,然后把“回音”进行处理就可以显示出内脏的情况了。地球内部结构:地球的内部结构大体可以分为三层:地壳 ......
49
0
0
2024-01-27
1.概要什么是不可变类型?在C#中,不可变类型(Immutable Types)是指一旦创建后,其状态或内容不能被修改的数据类型。不可变类型是基于函数式编程的概念,它们通常用于创建不可更改的对象,从而提高代码的可靠性、可维护性和线程安全性。不可变类型有哪些?Tuple元组 (Tuple) 是C#中的一个泛型类型,它允许将多个值打包成一个单一的不可变对象。元组 ......
54
0
0
2024-01-19
1.概要乐观锁(Optimistic Locking)乐观锁的核心思想是假设在大多数情况下,资源不会发生冲突,因此允许多个用户或线程同时读取和修改资源。只有在真正发生冲突的时候才会进行冲突解决。乐观锁的工作原理如下:版本标识或时间戳:在资源中引入一个版本标识(Version)或时间戳(Timestamp)字段,用于记录资源的修改版本或修改时间。读取资源:当一 ......
53
0
0
2024-01-19
1.概要在.NET8中C#的新增特性,System.ComponentModel.DataAnnotations 命名空间包括用于云原生服务中的验证场景的新数据验证特性。 虽然预先存在的 DataAnnotations 验证程序适用于典型的 UI 数据输入验证(例如窗体上的字段),但新特性旨在验证非用户输入数据,例如配置选项。 除了新特性之外,还向 Rang ......
55
0
0
2024-01-19
前言编程其实就是写代码,而写代码目的就是实现业务,所以,语法和框架也是为了实现业务而存在的。因此,不管多么高大上的目标,实质上都是业务。所以,我认为不要把写代码上升到科学的高度。上升到艺术就可以了,因为艺术本身也没有高度。。。。软件设计存在过度设计,语法和框架的理解,也存在过度理解。比如,反编译下,看看反射是怎么实现的。。。有兴趣是好事,但就算知道了反射的本 ......
45
0
0
2024-01-19
反射和动态编程是C#和其他现代编程语言中重要的高级主题,它们具有以下重要性:灵活性和扩展性:反射允许程序在运行时动态地获取和操作类型信息、成员和对象实例,这使得程序更加灵活和具有扩展性。动态编程则使得程序能够根据运行时的需求生成和执行代码,从而适应不同的场景和数据。插件和扩展:反射和动态编程在创建插件系统和扩展性架构中非常有用。它们允许应用程序在不修改源代码 ......
55
0
0
2024-01-07