随笔分类 -  .NET Standard

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