<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[qq_39999043的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/qq_39999043</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_39999043]]></copyright><item><title><![CDATA[get set 初始化一次]]></title><link>https://blog.youkuaiyun.com/qq_39999043/article/details/149401004</link><guid>https://blog.youkuaiyun.com/qq_39999043/article/details/149401004</guid><author>qq_39999043</author><pubDate>Wed, 16 Jul 2025 16:08:11 +0800</pubDate><description><![CDATA[如果需要确保整个应用程序中只有一个实例且只初始化一次，可以使用单例模式。实现延迟初始化，且保证只初始化一次。关键字修饰字段，该字段只能在。和构造函数控制初始化逻辑。对于复杂对象，可以使用。中赋值，之后不可修改。]]></description><category></category></item><item><title><![CDATA[public static Boolean IsNullOrEmptyEx([NotNullWhen(false)] this String? value) ]]></title><link>https://blog.youkuaiyun.com/qq_39999043/article/details/149387895</link><guid>https://blog.youkuaiyun.com/qq_39999043/article/details/149387895</guid><author>qq_39999043</author><pubDate>Wed, 16 Jul 2025 09:42:34 +0800</pubDate><description><![CDATA[是一种契约声明当方法返回false时，参数一定非空，可安全使用。这是 C# 8.0+ 中可空引用类型（Nullable Reference Types）的增强功能，提升了代码安全性和可读性。]]></description><category></category></item><item><title><![CDATA[C# 特性有哪些表现方式]]></title><link>https://blog.youkuaiyun.com/qq_39999043/article/details/149387776</link><guid>https://blog.youkuaiyun.com/qq_39999043/article/details/149387776</guid><author>qq_39999043</author><pubDate>Wed, 16 Jul 2025 09:39:36 +0800</pubDate><description><![CDATA[特性是 C# 中强大的元数据机制，通过声明式语法提供了灵活的代码注解方式，广泛用于框架集成、代码分析、序列化和验证等场景。]]></description><category></category></item><item><title><![CDATA[C# 中不同的整数类型]]></title><link>https://blog.youkuaiyun.com/qq_39999043/article/details/148464691</link><guid>https://blog.youkuaiyun.com/qq_39999043/article/details/148464691</guid><author>qq_39999043</author><pubDate>Fri, 06 Jun 2025 09:03:29 +0800</pubDate><description><![CDATA[，存大负数或大正数就用。，比如计数非负就用无符号（简单说，选类型主要看。]]></description><category></category></item><item><title><![CDATA[Mapster]]></title><link>https://blog.youkuaiyun.com/qq_39999043/article/details/145551758</link><guid>https://blog.youkuaiyun.com/qq_39999043/article/details/145551758</guid><author>qq_39999043</author><pubDate>Mon, 10 Feb 2025 15:41:14 +0800</pubDate><description><![CDATA[如果源对象和目标对象的属性名称或类型不完全匹配，可以使用 Mapster 的自定义映射规则来实现更复杂的映射：csharp// 定义源对象类set;set;// 定义目标对象类set;set;// 配置自定义映射规则// 创建源对象实例// 使用 Mapster 进行对象映射// 输出目标对象的属性值在这个示例中，Source类的FullName属性映射到类的Name属性，YearsOld属性映射到Age属性。通过配置了自定义的映射规则，然后进行对象映射。]]></description><category></category></item><item><title><![CDATA[.NET静态代码织入——肉夹馍（Rougamo）]]></title><link>https://blog.youkuaiyun.com/qq_39999043/article/details/145551650</link><guid>https://blog.youkuaiyun.com/qq_39999043/article/details/145551650</guid><author>qq_39999043</author><pubDate>Mon, 10 Feb 2025 15:38:34 +0800</pubDate><description><![CDATA[这是一个功能完善且强大的静态代码织入组件，Postsharp有社区版，但可惜的是社区版不支持异步方法，肉夹馍的实现方式与Postsharp类似，同时也支持了异步方法，如果你仅仅使用了Postsharp方法层级的AOP代码织入功能，可以尝试使用肉夹馍来替代Postsharp。则是在代码编译时直接修改原始方法IL代码，在原始方法内织入AOP代码的。.NET静态AOP的组件或许有人使用过。等，以上两种AOP组件都是通过运行时生成一个代理类执行AOP代码的，)通过静态代码织入方式实现AOP的组件。]]></description><category></category></item><item><title><![CDATA[.NET 过滤器(Filter) 与中间件与AOP面向切面 与拦截器]]></title><link>https://blog.youkuaiyun.com/qq_39999043/article/details/145548282</link><guid>https://blog.youkuaiyun.com/qq_39999043/article/details/145548282</guid><author>qq_39999043</author><pubDate>Mon, 10 Feb 2025 13:35:11 +0800</pubDate><description><![CDATA[AOP在做一些业务前置或后置处理上时很有用的，使用比较灵活，无需修改原有代码逻辑，比起修改原有代码维护相对好多啦！！！]]></description><category></category></item><item><title><![CDATA[Microsoft.Extensions.Hosting]]></title><link>https://blog.youkuaiyun.com/qq_39999043/article/details/145545340</link><guid>https://blog.youkuaiyun.com/qq_39999043/article/details/145545340</guid><author>qq_39999043</author><pubDate>Mon, 10 Feb 2025 13:05:39 +0800</pubDate><description><![CDATA[是 .NET 生态系统中一个非常重要的库，它提供了构建和管理主机应用程序的基础框架，支持依赖注入、日志记录、配置管理等核心功能，常用于构建各种类型的应用程序，如控制台应用、Web 应用、服务应用等。]]></description><category></category></item><item><title><![CDATA[电脑各个端口的名称和图片]]></title><link>https://blog.youkuaiyun.com/qq_39999043/article/details/145342902</link><guid>https://blog.youkuaiyun.com/qq_39999043/article/details/145342902</guid><author>qq_39999043</author><pubDate>Fri, 24 Jan 2025 16:17:48 +0800</pubDate><description><![CDATA[DVI接口包括DVI-A、DVI-D和DVI-I三种接口，DVI接口对比VGA​有很多优势，可以显示更高清的画面，对动态画面处理更加稳定。USB接口标准：USB1.0、USB1.1、USB2.0、USB3.0以及USB3.1，而USB的不同版本是可以相互兼容的。目前，大部分电脑和电脑都是使用这个接口。USB接口，真是可以说是大家最熟悉的接口之一，多用于连接鼠标、键盘、移动硬盘、打印机等带有USB接口的设备。DP接口类似于HDMI，也属于高清数字显示接口，可以同时传输视频和音频，它和VGA和DVI接口兼容。]]></description><category></category></item><item><title><![CDATA[打包类库上传到nuget]]></title><link>https://blog.youkuaiyun.com/qq_39999043/article/details/145342429</link><guid>https://blog.youkuaiyun.com/qq_39999043/article/details/145342429</guid><author>qq_39999043</author><pubDate>Fri, 24 Jan 2025 15:50:08 +0800</pubDate><description><![CDATA[如果你没有看到打包命令，你的项目可能不是SDk-style风格的项目，这是要使用 nuget.exe Cli(或者迁移到SDK-style项目，再使用dotnet Cli)。有了.nupkg文件，你可以从nuget.org获取一个API key(这个Key标记了你这个nuget账户)，结合dotnet cli发布包。尽快保存你的key，如果你再次返回这个页面，你需要重新生成key并Copy.：顾名思义，除打包命令，构建时也会自动生成nuget包；：帮助其他人定位你的包，了解包的能力。]]></description><category></category></item><item><title><![CDATA[自定义事件参数类EventArgs]]></title><link>https://blog.youkuaiyun.com/qq_39999043/article/details/145338017</link><guid>https://blog.youkuaiyun.com/qq_39999043/article/details/145338017</guid><author>qq_39999043</author><pubDate>Fri, 24 Jan 2025 10:59:50 +0800</pubDate><description><![CDATA[/注册事件处理程序。//定义事件并指定事件参数类型为MyEventArgs。//自定义事件参数类。//定义事件处理程序。]]></description><category></category></item><item><title><![CDATA[C#中delegate、event]]></title><link>https://blog.youkuaiyun.com/qq_39999043/article/details/145335576</link><guid>https://blog.youkuaiyun.com/qq_39999043/article/details/145335576</guid><author>qq_39999043</author><pubDate>Fri, 24 Jan 2025 10:03:43 +0800</pubDate><description><![CDATA[经过长久的经验积累后，人们发现，绝大多数事件的定义，是用public delegate void XXX(object sender, EventArgs e);这样一个委托原型进行定义的，是一件重复性的工作，于是，EventHandler应运而生。它的出现就是为了避免这种重复性工作，并建议尽量使用该类型作为事件的原型。事件event是一种特殊的委托，它只能+=，-=，不能直接用=。event在定义类中（发布者）是可以直接=的，但是在其他类中（订阅者）就只能+= -=了，]]></description><category></category></item></channel></rss>