随笔分类 -  C#.Net

摘要:.NET Core提供了一些基本的具体集合类,这些类实现了一系列集合接口。和集合接口一样,每一种集合类型都可以选择使用泛型或非泛型进行实现。在灵活性和性能方面,泛型类更具有优势,而它们的非泛型冗余版本则是为了向后兼容。这与集合接口不同,非泛型集合接口在某些情形下是有其作用的。而泛型List类是最常用 阅读全文
posted @ 2022-08-29 17:46 龙猫•ᴥ• 阅读(2523) 评论(0) 推荐(1)
摘要:Array类是所有一维和多维数组的隐式基类,它是实现标准集合接口的最基本类型之一。Array类提供了类型统一性,所以所有的数组对象都能够访问同一套公共方法,而与它们的声明或实际的元素类型无关。 当使用C#语法声明数组时,CLR会将其隐式转换为Array类的子类,合成一个对应该数组维度和元素类型的伪类 阅读全文
posted @ 2022-08-26 17:20 龙猫•ᴥ• 阅读(1738) 评论(0) 推荐(0)
摘要:虽然枚举接口IEnumerable提供了一种向前迭代集合的协议,但是它们并没有提供确定集合大小、根据索引访问成员、搜索以及修改集合的机制。为了实现这些功能,.NET Core定义了ICollection、IList和IDictionary接口。这些接口都支持泛型和非泛型版本。然而,非泛型版本的存在只 阅读全文
posted @ 2022-08-26 14:01 龙猫•ᴥ• 阅读(1354) 评论(0) 推荐(0)
摘要:快速认识ORM 对象-关系映射,即Object/Relation Mapping,主要实现程序对象到关系数据库的映射。现在.Net比较流行的ORM框架有:EF、SqlSugar、Dapper、FreeSql、Nhibernate、IBatis.Net等。 O/RM只是一层代码的封装,底层还是基于AD 阅读全文
posted @ 2022-08-24 15:22 龙猫•ᴥ• 阅读(2103) 评论(3) 推荐(2)
摘要:安装Nuget包:ServiceStack.Redis 连接数据库 using (RedisClient client = new RedisClient("127.0.0.1", 6379)) { //删除当前数据库中的所有Key 默认删除的是db0 client.FlushDb(); //删除所 阅读全文
posted @ 2022-08-10 12:00 龙猫•ᴥ• 阅读(87) 评论(0) 推荐(0)
摘要:为了避免运行时编译cshtml造成的性能问题,ASP.NET Core MVC项目在发布的时候默认会把cshtml文件编译到dll中,但是有的项目希望能在运行时修改cshtml视图文件。网上有文章讲到过在csproj文件中添加 <MvcRazorCompileOnPublish>false</Mvc 阅读全文
posted @ 2022-07-06 11:06 龙猫•ᴥ• 阅读(146) 评论(0) 推荐(0)
摘要:IEnumerable 和 IEnumerator IEnumerator接口定义了以向前方式遍历集合的基本底层协议。 声明如下: public interface IEnumerator { bool MoveNext(); object Current { get; } void Reset() 阅读全文
posted @ 2022-06-29 20:57 龙猫•ᴥ• 阅读(838) 评论(0) 推荐(0)
摘要:C#的CLR(即 common language runtime,公共语言运行库)包含两种任务组合器:Task.WhenAny和Task.WhenAll。 我们先定义如下方法: async Task<int> Delay1() { await Task.Delay(1000); return 1; 阅读全文
posted @ 2022-06-28 21:56 龙猫•ᴥ• 阅读(3054) 评论(0) 推荐(3)
摘要:在C#8之前,可以使用yield return实现迭代器,也可以用await书写异步函数。但无法两者结合,实现一个可以等待的迭代器。C#8引入了异步流解决了这个问题。 异步流基于以下两个接口。 public interface IAsyncEnumerable<out T> { IAsyncEnum 阅读全文
posted @ 2022-06-28 21:55 龙猫•ᴥ• 阅读(451) 评论(0) 推荐(0)
摘要:要编写异步函数,可将返回类型void改为Task。这样方法本身就能进行异步调用,并且是可等待的。 async Task PrintAnswerToLife() { await Task.Delay (5000); int answer = 21 * 2; Console.WriteLine (ans 阅读全文
posted @ 2022-06-26 08:48 龙猫•ᴥ• 阅读(678) 评论(0) 推荐(0)
摘要:await关键字可以简便地附加延续。 static void Main(string[] args) { DisplayPrimesCount(); } static async void DisplayPrimesCount() { int result = await GetPrimesCoun 阅读全文
posted @ 2022-06-25 22:56 龙猫•ᴥ• 阅读(1680) 评论(0) 推荐(0)
摘要:应用程序对HTTP请求的处理过程进行划分,每个环节称为中间件,将各个中间件串联起来,就形成了HTTP管道。 执行中间件的顺序与它们添加到管道的顺序相同,先添加的中间件会先执行。 添加方法有三种: (1)委托:中间件专用委托类型为RequestDelegate,对应的方法结构就是带HttpContex 阅读全文
posted @ 2021-10-13 17:45 龙猫•ᴥ• 阅读(290) 评论(0) 推荐(0)
摘要:枚举出程序中已添加的服务 Asp.Net Core 项目中的“服务”,指的是用于扩展应用程序功能的一系列类型。 在程序初始化期间,会把需要的服务类型实例添加到ServiceCollection集合中,这些服务实例将通过依赖注入提供给其他代码使用。 下面遍历一下已添加的服务: public stati 阅读全文
posted @ 2021-10-13 14:33 龙猫•ᴥ• 阅读(594) 评论(0) 推荐(0)
摘要:Web主机配置 使用默认配置创建Web主机 静态类WebHost,公开了一系列简便方法,可使用默认配置参数创建Web主机。用的较多的是CreateDefaultBuilder方法,默认配置创建WebHostBuilder实例。 默认配置包括: (1)使用内置Kestrel服务器组件,能够使Web应用 阅读全文
posted @ 2021-10-13 10:33 龙猫•ᴥ• 阅读(521) 评论(0) 推荐(1)
摘要:问题:使用SqlSugar批量更新时报错“SqlSugar.SqlSugarException: You cannot have no primary key and no conditions”; 主键或条件不存在 Db.Updateable<User>(users).ExecuteCommand 阅读全文
posted @ 2021-09-30 11:36 龙猫•ᴥ• 阅读(4560) 评论(0) 推荐(0)
摘要:特性 自定义特性类 特性是一种比较特殊的类,作为代码对象附加部分用于向运行时提供一些补充信息。 主要有三个特征: 从Attribute类派生 名称一般以Attribute结尾 声明特性类时必须在类上加AttributeUsage,用于标注当前声明的类应用于哪些对象 [AttributeUsage(A 阅读全文
posted @ 2021-09-29 09:43 龙猫•ᴥ• 阅读(1699) 评论(0) 推荐(0)
摘要:阻止类被继承 有时候需要禁止某个类被继承,使其成为密封类。只需使用sealed关键字申明即可。 sealed class Pear { } // 错误,Pear 类无法被继承 //class WildPear : Pear //{ //} 阅读全文
posted @ 2021-09-29 09:35 龙猫•ᴥ• 阅读(370) 评论(0) 推荐(0)
摘要:Validation failed for one or more entities.See 'EntityValidationErrors' property for more details.验证异常消息是:The field AUDIT_CONTENT must be a string or 阅读全文
posted @ 2021-09-08 16:43 龙猫•ᴥ• 阅读(709) 评论(0) 推荐(0)
摘要:输出百分比 百分比的格式控制符为"P"或"p"将普通数值输出为百分比形式。在控制符后跟一个整数表示要保留的小数位。如:"P3"表示保留3位小数。 float val = 0.1785f; string a = $"{val:p}"; //17.85% string b = $"{val:p3}"; 阅读全文
posted @ 2021-09-07 17:00 龙猫•ᴥ• 阅读(2094) 评论(1) 推荐(0)
摘要:克隆对象 /// <summary> /// 对象Clone /// </summary> /// <typeparam name="T"></typeparam> /// <param name="t"></param> /// <returns></returns> public static 阅读全文
posted @ 2021-09-07 16:49 龙猫•ᴥ• 阅读(217) 评论(0) 推荐(0)