随笔分类 - .NET Standard
摘要:提问 如何写出最优美的工厂模式 回答 首先定义什么是最优美 最优美代表着他:面对新增开放,面对修改关闭实践 那么如何实现呢? 我选择使用特性 + 反射 public ICommand? BuildCommand(string[]? args) { if (args == null || args.L
阅读全文
摘要:提问 异步任务如何同步阻塞 回答 我选择使用GetAwaiter().GetResult() 他比直接调用.Result的兼容性更好因为它支持Task返回类型;
阅读全文
摘要:提问 如何删除带有内容的文件夹 回答 if (Directory.Exists(dir)) Directory.Delete(dir, true);
阅读全文
摘要:提问 如何读取被占用文件内容 解答 public override (bool ok, string msg) Excute() { var path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, $@"Logs\Info\{DateTi
阅读全文
摘要:提问 都有ThreadPool了为什么引入Task 回答 ThreadPool无法确定任务什么时候完成 无法获取内在返回值
阅读全文
摘要:提问 时间戳如何转DateTime 回答 //毫秒 DateTimeOffset.FromUnixTimeMilliseconds(timeStamp) //秒 DateTimeOffset.FromUnixTimeSeconds(timeStamp)
阅读全文
摘要:提问 死锁触发原因 回答 两个线程中的每一个线程都尝试锁定另外一个线程已锁定的资源时,就会发生死锁。 两个线程都不能继续执行。 参考 https://learn.microsoft.com/zh-cn/dotnet/standard/threading/managed-threading-best-
阅读全文
摘要:提问 如何开发DotNET命令行工具发布到NuGet 回答 配置项目文件 <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>net6.0</TargetFra
阅读全文
摘要:作用 自动生成CHANGELOG.md 源码 https://gitee.com/galacode/ChangeLog.CommunityToolkit.git 原理 提交遵守约定式提交 版本信息使用标签(tag) 定义并遵守semver2.0 根据git log进行字提交信息聚合,生成CHANGE
阅读全文
摘要:提出问题 如何单文件独立剪裁部署 解决问题 dotnet publish -c Release -r win-x64 -p:PublishSingleFile=true -p:PublishTrimmed=true --self-contained true 参考 单文件 独立部署 剪裁
阅读全文
摘要:提出问题 如何月份英文缩写字符串转日期 例如:Thu Sep 8 19:45:29 2022 解决问题 CultureInfo enUS = new CultureInfo("en-US"); string pattern = "ddd MMM d HH:mm:ss yyyy"; DateTime
阅读全文
摘要:提出问题 如何快速生成数组 解决问题 Enumerable.Range(1, 100).ToArray();
阅读全文
摘要:提出问题 我想判断某个类或者属性是否声明了某特性,该怎么办? 解决问题 使用IsDefined,他比GetCustomAttributes效率更高 xxx.GetType().IsDefined(typeof(XXXAttribute),false) 参考 CLR via C# 379
阅读全文
摘要:.csproj目录运行 dotnet publish -r win10-x64 /p:PublishSingleFile=true /p:PublishTrimmed=true
阅读全文
摘要:《CLR VIA c#》建议使用更弱的类型即IEnumerable好与IList好于List 因为这样更灵活
阅读全文
摘要:使用场景 你定义了一个接口并写好了一些代码注释在接口上的方法上; 但每个实现此接口的类是否还需要再写一遍这些注释呢,假如不写似乎无法查看到方法的功能说明呢, 这时你就可以在实现方法上加入///标记,这样文档注释就继承下来了 示例 定义了一个接口,并给接口方法写了方法注释 namespace Inhe
阅读全文
摘要:为什么数组索引从0开始 由于历史原因C语言的数组索引从0开始,而这个索引其实是表示内存相对于起始地址的偏移 通过偏移量获取 int[] someArray = new int[5] { 1, 2, 3, 4, 5 }; int lastElement = someArray[someArray.Le
阅读全文
摘要:依赖注入 using Microsoft.Extensions.Caching.Memory; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; IHost host = Host.
阅读全文
摘要:new DateTimeOffset(DateTime.UtcNow).ToUnixTimeSeconds();
阅读全文
摘要:Hashtable存储object类型; Dictionary<TKey,TValue> 泛型比Hashtable减少了装箱拆箱操作 ConcurrentDictionary<TKey,TValue>线程全的字典类型
阅读全文

浙公网安备 33010602011771号