03 2023 档案

摘要:为什么要从基础看起 从.net framework3.5就开始接触c#,到现在.net7的崛起,期间有大量的新技术和框架冲击着我,MVC1.0的时候放弃过,感觉无所适从,linq也是近几年才开始使用,感觉现在写代码的方式已经被时代所淘汰,因此萌生出了从头捋顺一次。 学习的时候并没有通过一个完整的体系 阅读全文
posted @ 2023-03-25 15:29 摧残一生 阅读(100) 评论(0) 推荐(0) 编辑
摘要:&str 字符串 直接声明时,生命周期为整个程序,直接写进了二进制中,类型为&'static str',意为字符串字元有一个叫static的生命期 借用str 作为String的引用来使用,无生命期,例如 fn print_str(my_str: &str){},调用为print_str(&Stri 阅读全文
posted @ 2023-03-22 15:16 摧残一生 阅读(47) 评论(0) 推荐(0) 编辑
摘要:链式方法 collect let new_vec = (1..=10).collect::<Vec>(); OR let new_vec: Vec = (1..=10).collect(); Vec![].into_iter().skip(3).take(4).collect::<Vec>(); s 阅读全文
posted @ 2023-03-22 15:01 摧残一生 阅读(47) 评论(0) 推荐(0) 编辑
摘要:u16::checked_add(251, 8).unwrap(); /* checked_add的方式有两种 第一种为u16::checked_add(数值,数值),相加 第二种类型直接调用checked_add() checked_*:返回的类型是Option<_>,当出现溢出的时候,返回值是N 阅读全文
posted @ 2023-03-22 14:59 摧残一生 阅读(213) 评论(0) 推荐(0) 编辑
摘要:诊断的含义 通过自己的逻辑代码判断动态编译的代码是否有问题,有问题时需要告诉编译器有警告或者错误,让编译器返回来向我们展示我们期望的诊断信息。 因为动态编译时编译器无法得知我们写入是否有问题,从而产生很多奇奇怪怪的错误提示。 使用场景 当代码写好了,准备编译生成时,我们无法判断动态生成的代码是否存在 阅读全文
posted @ 2023-03-20 17:47 摧残一生 阅读(99) 评论(0) 推荐(0) 编辑
摘要:我们经常会遇到,原有代码中新增方法,扩展我们自己写的代码。这个使用Source Generator也可以实现 在上一章的接触上新增类库(AugmentingGeneratorMethod) 添加Microsoft.CodeAnalysis.Analyzers 和 Microsoft.CodeAnal 阅读全文
posted @ 2023-03-20 17:04 摧残一生 阅读(109) 评论(0) 推荐(1) 编辑
摘要:上一篇讲解了如何直接调用静态方法,而有时候我们会生成cs文件或其他格式的文件,进而使用Source Generator编译。本例中就对资源文件进行编译进行举例说明。 在Source Generator调用的基础上,创建一个新的类库项目(SourceGeneratorXmlMethod) 在项目上添加 阅读全文
posted @ 2023-03-20 16:03 摧残一生 阅读(151) 评论(0) 推荐(1) 编辑
摘要:创建一个控制台项目(SourceGeneratorConsole) 切记不要使用顶级语句 创建一个类库项目(SourceGeneratorStaticMethod),选择netstandard2.0平台 在类库项目中引用Microsoft.CodeAnalysis.CSharp(4.4.0)和Mic 阅读全文
posted @ 2023-03-20 14:57 摧残一生 阅读(105) 评论(0) 推荐(0) 编辑
摘要:Source Generator 什么是Source Generator .NET 5引入的系特性,可在应用编译期间根据当前编译信息动态生成代码,也可以直接引用动态生成的代码。 优势 加快运行速度 原有的程序机制是初次运行时通过反射进行依赖注入,这时会导致第一次运行加载大量数据,运行会慢,再一个不利 阅读全文
posted @ 2023-03-18 10:36 摧残一生 阅读(306) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示